🚀 Java Series – Day 2 📌 Topic: Arrays.asList() vs List.of() 🔹 What is Arrays.asList()? It converts an array into a fixed-size list 👉 You can change elements but cannot add/remove 🔹 What is List.of()? It creates an immutable list 👉 No modification allowed at all 🔹 Key Differences ✔ Arrays.asList() • Fixed size list • set() allowed ✅ • add/remove ❌ • null allowed ✅ ✔ List.of() • Completely immutable • No add/remove/set ❌ • null NOT allowed ❌ 🔹 Example List<String> list1 = Arrays.asList("Java", "Python"); list1.set(1, "C++"); // ✅ Allowed List<String> list2 = List.of("Java", "Python"); list2.set(1, "C++"); // ❌ Error 🔹 Important Point 👉 Arrays.asList() → backed by array 👉 List.of() → safe & immutable 💡 Key Takeaway Use Arrays.asList() when working with arrays Use List.of() when you need fixed, safe data Consistency is the key 🔥 Day 2 complete ✅ What do you think about this? 👇 #Java #JavaDeveloper #Programming #BackendDevelopment #CodingJourney #100DaysOfCode
Arrays.asList() vs List.of() in Java: Key Differences
More Relevant Posts
-
💻 Understanding Buffer Problem & Wrapper Classes in Java While working with Java input using scanner, many beginners face a tricky issue called the Buffer Problem when using Scanner. What happens? --->>When you use nextInt() or nextFloat(), it reads only the number and leaves the newline (\n) in the buffer. --->>So the next nextLine() gets skipped unexpectedly! ~Quick Fix: Always clear the buffer: int n = scan.nextInt(); scan.nextLine(); // clear buffer String name = scan.nextLine(); 🔄 Wrapper Classes in Java Java provides Wrapper Classes to convert primitive data types into objects. @Examples: int → Integer float → Float char → Character #These are super useful when: ✔ Converting String → primitive ✔ Working with collections (like ArrayList) ✔ Using built-in utility methods 🌍 Real-Time Example Imagine a job application system: User input: 101,John,50000 **To process this** 👇 String[] data = input.split(","); int id = Integer.parseInt(data[0]); String name = data[1]; int salary = Integer.parseInt(data[2]); Here, Wrapper Classes help convert text into usable data types. #Key Takeaways ✔ Always clear buffer when mixing nextInt() & nextLine() ✔ Wrapper classes make data conversion easy ✔ Essential for real-world input handling & backend systems #Mastering these small concepts builds a strong foundation in Java! TAP Academy #Java #Programming #OOP #JavaDeveloper #Coding #SoftwareDevelopment #LearnJava
To view or add a comment, sign in
-
-
Hello Connections, Post 18 — Java Fundamentals A-Z This one makes your code 10x cleaner. Most developers avoid it. 😱 Can you spot the difference? 👇 // ❌ Before Java 8 — verbose and painful! List<String> names = Arrays.asList( "Charlie", "Alice", "Bob" ); Collections.sort(names, new Comparator<String>() { @Override public int compare(String a, String b) { return a.compareTo(b); } }); 8 lines. Just to sort a list. 😬 // ✅ With Lambda — clean and powerful! Collections.sort(names, (a, b) -> a.compareTo(b)); // ✅ Done! // Even cleaner with method reference! names.sort(String::compareTo); // ✅ One liner! // Real example! transactions.stream() .filter(t -> t.getAmount() > 10000) // Lambda! .forEach(t -> System.out.println(t)); // Lambda! Lambda = anonymous function // Structure of a Lambda (parameters) -> expression // Examples () -> System.out.println("Hello") // No params (n) -> n * 2 // One param (a, b) -> a + b // Two params (a, b) -> { // Block body int sum = a + b; return sum; } Post 18 Summary: 🔴 Unlearned → Writing verbose anonymous classes for simple operations 🟢 Relearned → Lambda = concise anonymous function — write less do more! 🤯 Biggest surprise → Replaced 50 lines of transaction processing code with 5 lines using Lambdas! Have you started using Lambdas? Drop a λ below! #Java #JavaFundamentals #BackendDevelopment #LearningInPublic #SDE2 Follow along for more! 👇
To view or add a comment, sign in
-
-
Day 51-What I Learned In a Day (JAVA) Today I stepped into the next important concept in Java -Non-Static Members. Unlike static members, non-static members belong to an object, not the class. This means they require an instance of the class to be accessed. What are Non-Static Members? Non-static members include: • Non-static variables (instance variables) • Non-static methods • Constructors Key Understanding: 🔹 Instance Variables Each object has its own copy of variables. Changes in one object do not affect another. 🔹 Non-Static Methods These methods can directly access both static and non-static members. They require object creation to be called. 🔹 Object Creation is Mandatory !To access non-static members: ClassName obj = new ClassName(); Important Difference I Learned: • Static → Belongs to class (no object needed) • Non-Static → Belongs to object (object required) What I Realized Today: Understanding non-static members is crucial because real-world applications mainly work with objects. This concept is the base for Object-Oriented Programming (OOP). #Java #OOP #Programming #LearningJourney #DeveloperLife
To view or add a comment, sign in
-
Internal Working of HashMap in Java — How .put() Works When the .put(key, value) method is called for the first time, HashMap internally performs the following steps: Step 1 — Array of Buckets is Created An array of 16 buckets (index 0 to 15) is initialized by default. Each bucket acts as a slot to store data. Step 2 — Hash Calculation The .put() method internally calls putVal(), which receives the result of hash(key) as an argument. The hash() method calls hashCode() which calculates a hash value by using key and returns it back to hash(), which then passes it to putVal(). Step 3 — Index Generation Inside putVal(), a bitwise AND operation is performed between the hashcode and (n-1) where n = 16: index = hashCode & (n - 1) This generates the exact bucket index where the key-value pair will be stored. Step 4 — Node Creation A Node is created and linked to the calculated bucket index. Each Node contains: 🔹 hash — the hash value 🔹 key — the key 🔹 value — the value 🔹 next — pointer to the next node What happens when .put() is called again? The same hash calculation process runs. Now two scenarios are possible: Case 1 — Same Index, Same Key (Update) If the newly generated index matches an existing bucket and the existing node's key equals the new key → the value is simply updated with the new one. Case 2 — Same Index, Different Key (Collision) If the index is the same but the keys are different → a collision occurs. In this case, the new node is linked to the previous node using the next pointer, forming a Linked List inside that bucket. That's how HashMap handles collisions and maintains data internally — simple but powerful. #Java #HashMap #DataStructures #BackendDevelopment #Programming #TechLearning #JavaDeveloper
To view or add a comment, sign in
-
-
. Understanding ForkJoinPool in Java (Simple Concept) When working with large datasets or CPU-intensive tasks in Java, processing everything in a single thread can be slow. This is where ForkJoinPool becomes very useful. ForkJoinPool is a special thread pool introduced in Java 7 that helps execute tasks in parallel using the Divide and Conquer approach. The idea is simple: • Fork – Break a big task into smaller subtasks • Execute – Run these subtasks in parallel threads • Join – Combine the results of all subtasks into the final result One of the most powerful features of ForkJoinPool is the Work-Stealing Algorithm. If a thread finishes its task early and becomes idle, it can steal tasks from other busy threads. This keeps the CPU efficiently utilized and improves performance. Common Use Cases • Parallel data processing • Large array computations • Sorting algorithms (like Merge Sort) • Parallel streams in Java • CPU-intensive calculations Important Classes • ForkJoinPool – Manages worker threads • RecursiveTask – Used when a task returns a result • RecursiveAction – Used when a task does not return a result In fact, when we use Java Parallel Streams, internally Java often uses ForkJoinPool to process tasks in parallel. Understanding ForkJoinPool is very helpful for writing high-performance multithreaded applications in Java. #Java #ForkJoinPool #Multithreading #JavaConcurrency #BackendDevelopment #JavaDeveloper #SoftwareEngineering
To view or add a comment, sign in
-
🗂️ Java Collections Framework When I first started Java, I just used ArrayList everywhere. 😅 Need a list? ArrayList. Need to store data? ArrayList. Need anything? ArrayList. Sound familiar? Then I discovered there's an entire UNIVERSE of data structures in Java — each built for a specific purpose. ━━━━━━━━━━━━━━━━━━━━━━ 🏗️ The Big Picture — Collections Hierarchy ━━━━━━━━━━━━━━━━━━━━━━ Java Collections has TWO separate hierarchies: 1️⃣ Collection (Iterable → Collection → List / Set / Queue) 2️⃣ Map (completely separate — Key-Value pairs) 📌 Collection Side: ▸ List → ordered, duplicates allowed → ArrayList, LinkedList, Vector, Stack ▸ Set → no duplicates → HashSet, LinkedHashSet, TreeSet ▸ Queue / Deque → FIFO / double-ended → PriorityQueue, ArrayDeque 📌 Map Side: ▸ HashMap → fast, unordered ▸ LinkedHashMap → insertion-order maintained ▸ TreeMap → sorted by keys ▸ Hashtable → legacy (avoid in new code) ━━━━━━━━━━━━━━━━━━━━━━ 🔑 The Golden Rule: ━━━━━━━━━━━━━━━━━━━━━━ Choosing the WRONG collection = slow code. Choosing the RIGHT collection = clean, efficient code. And that's exactly what this series is about. 🎯 📌 What's coming next in this series: ✅ ArrayList vs LinkedList — when does it actually matter? ✅ HashSet vs TreeSet — hashing vs sorting ✅ HashMap vs TreeMap vs LinkedHashMap ✅ Queue, Deque & PriorityQueue with real use cases ✅ Interview questions on Collections ━━━━━━━━━━━━━━━━━━━━━━ If you followed my OOPs series — this one is going to be even better. 🚀 Drop a 🙋 in the comments if you're in for this series!TAP Academy #Java #Collections #JavaDeveloper #Programming #DSA #100DaysOfCode #JavaSeries #SoftwareEngineering #LearningInPublic #LinkedInLearning#tapacademy
To view or add a comment, sign in
-
-
📘 Day 9 of Java Learning Series 🔹 String vs StringBuilder vs StringBuffer If you're working with text in Java, understanding these 3 is very important 👇 🔸 1. String ✔ Immutable (cannot be changed) ✔ Every modification creates a new object ✔ Slower when modifying frequently 💡 Example: String s = "Hello"; s = s + " World"; 🔸 2. StringBuilder ✔ Mutable (can be changed) ✔ Faster than String ✔ Not thread-safe 💡 Example: StringBuilder sb = new StringBuilder("Hello"); sb.append(" World"); 🔸 3. StringBuffer ✔ Mutable ✔ Thread-safe (synchronized) ✔ Slightly slower than StringBuilder 💡 Example: StringBuffer sbf = new StringBuffer("Hello"); sbf.append(" World"); 🔸 Key Differences: ✔ String → Immutable ✔ StringBuilder → Fast & Non-Synchronized ✔ StringBuffer → Thread-Safe 💡 When to Use? ✔ Use String → when data doesn’t change ✔ Use StringBuilder → for performance (most cases) ✔ Use StringBuffer → in multi-threaded apps 💬 Which one do you use the most? 👉 Follow me for more Java content 🚀 #Java #Programming #100DaysOfCode #Developers #Learning #CoreJava
To view or add a comment, sign in
-
-
💻 String vs StringBuffer vs StringBuilder in Java – Know the Difference! In Java, handling text data is very common. Let’s understand the three important classes: 🔹 1. String ✔ Immutable (cannot be changed once created) ✔ Any modification creates a new object ✔ Safe and widely used Example: "String s = "Hello";" "s = s + " World"; // creates new object" --- 🔹 2. StringBuffer ✔ Mutable (can be changed) ✔ Thread-safe (synchronized) ✔ Slightly slower due to synchronization Example: "StringBuffer sb = new StringBuffer("Hello");" "sb.append(" World");" --- 🔹 3. StringBuilder ✔ Mutable (can be changed) ✔ Not thread-safe ✔ Faster than StringBuffer Example: "StringBuilder sb = new StringBuilder("Hello");" "sb.append(" World");" --- 💡 Key Difference: String = Immutable StringBuffer = Mutable + Thread-safe StringBuilder = Mutable + Faster 🚀 Use String for simple tasks, StringBuffer for multi-threading, and StringBuilder for better performance in single-threaded applications. #FortuneCloudTechnology #Java #Programming #String #JavaBasics #Coding #Developers #Learning
To view or add a comment, sign in
-
🚀 ArrayDeque in Java 📌 How to use ArrayDeque ad = new ArrayDeque(); ad.add(10); ad.add(20); ad.add(30); System.out.println(ad); 📌 Points to Remember 1️⃣ Initial capacity = 16 2️⃣ Heterogeneous data → Yes, it will store 3️⃣ Preserves order of insertion 4️⃣ Duplicates are allowed 5️⃣ Null values are NOT allowed 📌 Constructors (3) 1. ArrayDeque() 2. ArrayDeque(int) 3. ArrayDeque(Collection) Example: LinkedList ll = new LinkedList(); ll.add(10); ll.add(20); ArrayDeque ad = new ArrayDeque(ll); 📌 Internal Structure 👉 Resizable array (Dynamic array) 📌 Hierarchy Iterable → Collection → Queue → Deque → ArrayDeque 📌 Accessing Elements ❌ No indexes in ArrayDeque ❌ Normal for loop will not work ✔️ Use for-each loop for(Object a : ad){ System.out.println(a); } 📌 Iterator (Forward) Iterator cursor = ad.iterator(); while(cursor.hasNext()){ System.out.println(cursor.next()); } 📌 Descending Iterator (Backward) Iterator cursor = ad.descendingIterator(); while(cursor.hasNext()){ System.out.println(cursor.next()); } 📌 When to use ArrayDeque ✔️ Heterogeneous data ✔️ Duplicate entries ✔️ No null values ✔️ Preserves order of insertion 🎯 Summary: ArrayDeque is a resizable array-based data structure that allows insertion and deletion from both ends, preserves order, allows duplicates, but does not allow null values and indexing. #Java #ArrayDeque #JavaCollections #Programming #Coding #Developers #Learning
To view or add a comment, sign in
-
Day 7 of #100DaysOfCode — Java is getting interesting ☕ Today I explored the Java Collections Framework. Before this, I was using arrays for everything. But arrays have one limitation — fixed size. 👉 What if we need to add more data later? That’s where Collections come in. 🔹 Key Learnings: ArrayList grows dynamically — no size worries Easy operations: add(), remove(), get(), size() More flexible than arrays 🔹 Iterator (Game changer) A clean way to loop through collections: hasNext() → checks next element next() → returns next element remove() → safely removes element 🔹 Concept that clicked today: Iterable → Collection → List → ArrayList This small hierarchy made everything much clearer. ⚡ Array vs ArrayList Array → fixed size ArrayList → dynamic size Array → stores primitives ArrayList → stores objects Still exploring: Set, Map, Queue next 🔥 Consistency is the only plan. Showing up every day 💪 If you’re also learning Java or working with Collections — let’s connect 🤝 #Java #Collections #ArrayList #100DaysOfCode #JavaDeveloper #LearningInPublic
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development