{"id":1380,"date":"2023-09-14T12:51:12","date_gmt":"2023-09-14T12:51:12","guid":{"rendered":"https:\/\/www.w3computing.com\/articles\/?p=1380"},"modified":"2023-09-14T12:51:18","modified_gmt":"2023-09-14T12:51:18","slug":"java-arraylist-from-iteration-to-custom-objects","status":"publish","type":"post","link":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/","title":{"rendered":"Java ArrayList: From Iteration to Custom Objects"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Brief about the Java Collections Framework<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Java Collections Framework (JCF) is a crucial and comprehensive set of classes and interfaces in Java&#8217;s standard library, designed explicitly for creating and manipulating collections of objects. These collections are essentially data structures that allow us to organize, store, and manage data efficiently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The JCF was introduced to offer a unified architecture for representing and manipulating collections. Before its introduction, Java developers often had to implement their data structures or rely on inconsistent APIs. The framework provides several benefits:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Performance<\/strong>: The standard collections in JCF are performance-optimized for most standard use-cases. This means developers can rely on them without worrying about the nitty-gritty details of data structure performance tuning.<\/li>\n\n\n\n<li><strong>Interoperability<\/strong>: All collection classes in JCF adhere to a set of standard interfaces (like List, Set, Queue, etc.). This promotes consistent usage patterns and makes it easier to switch between different collection types or to make them work in tandem.<\/li>\n\n\n\n<li><strong>Extensibility<\/strong>: While JCF provides a robust set of pre-implemented data structures, it&#8217;s also designed to be extensible. Developers can easily extend existing classes or interfaces to create specialized collections tailored for specific needs.<\/li>\n\n\n\n<li><strong>Concurrent Implementations<\/strong>: The framework also offers thread-safe or concurrent collection variants that help in building efficient multi-threaded applications.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Why use ArrayList?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayList is one of the most popular implementations of the List interface provided by the JCF. Here&#8217;s why developers gravitate towards using it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Dynamic Resizing<\/strong>: Unlike standard arrays in Java, which have a fixed size once declared, ArrayLists can dynamically resize themselves. This ensures that you don\u2019t waste memory on pre-allocated, unused elements or run out of space when storing elements beyond an array&#8217;s initial capacity.<\/li>\n\n\n\n<li><strong>Convenience and Ease of Use<\/strong>: ArrayList provides utility methods for common operations like adding, removing, or fetching elements which are not directly available with arrays.<\/li>\n\n\n\n<li><strong>Indexed Access<\/strong>: ArrayLists, being a part of the List family, allow for efficient indexed access and modification of elements. This makes them suitable for use-cases where frequent read, add, or update operations based on an index are required.<\/li>\n\n\n\n<li><strong>Null and Duplicates<\/strong>: ArrayList can store null elements and allows duplicates. This provides flexibility in scenarios where such requirements are essential.<\/li>\n\n\n\n<li><strong>Integration with Other Java APIs<\/strong>: ArrayList seamlessly integrates with various other Java APIs and libraries, making it easier to transform, process, or transmit data.<\/li>\n\n\n\n<li><strong>Generics Support<\/strong>: Introduced in Java 5, generics allow for type-safe operations. With ArrayList, you can ensure that only a specific type of objects gets stored, thus minimizing runtime type errors.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">ArrayList Basics<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Declaration and Initialization<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayList is a part of the Java Collections Framework and is a resizable array implementation of the List interface. To declare and initialize an ArrayList, the following syntax is used:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;E&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Here, <code>E<\/code> denotes the type of elements this ArrayList will store. It could be any object type like <code>Integer<\/code>, <code>String<\/code>, <code>CustomObject<\/code>, etc. If you&#8217;re using Java 7 and above, you can use the diamond operator (<code>&lt;&gt;<\/code>) during initialization to infer the type from the declaration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; names = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nArrayList&lt;Integer&gt; numbers = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Size and Capacity: Understanding the difference<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The terms &#8220;size&#8221; and &#8220;capacity&#8221; are frequently used when discussing ArrayList, but they represent different concepts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Size<\/strong>: It refers to the number of elements that the ArrayList currently holds. You can get the size of an ArrayList using the <code>size()<\/code> method.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">names.add(<span class=\"hljs-string\">\"Alice\"<\/span>);\r\nnames.add(<span class=\"hljs-string\">\"Bob\"<\/span>);\r\nSystem.out.println(names.size());  <span class=\"hljs-comment\">\/\/ Outputs: 2<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Capacity<\/strong>: It refers to the total number of elements an ArrayList can hold without resizing its internal array. Initially, when you create an empty ArrayList without specifying any capacity, it has a default capacity (usually 10, but this might vary depending on the Java version). When elements are added beyond this capacity, the ArrayList dynamically resizes by increasing its capacity (typically, it doubles the current capacity). You cannot directly get the capacity of an ArrayList in Java as there\u2019s no public method for this. However, understanding this behavior is crucial for performance considerations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">ArrayList vs. Array: Pros and Cons<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Both arrays and ArrayLists are fundamental data structures in Java, but they have different use cases, advantages, and disadvantages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Array<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pros<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Fixed size: This can be a benefit when you know exactly how many elements you&#8217;ll be dealing with.<\/li>\n\n\n\n<li>Performance: Arrays might have a slight performance edge over ArrayLists since there&#8217;s no overhead of additional methods or dynamic resizing.<\/li>\n\n\n\n<li>Simple Syntax: Arrays offer straightforward syntax for declaration and initialization.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Cons<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Fixed size: It\u2019s a double-edged sword. Once an array&#8217;s size is set, it cannot be changed without creating a new array.<\/li>\n\n\n\n<li>No Built-in Methods: Arrays don\u2019t come with built-in methods for operations like insertion, deletion, or contains check. You have to manually manage these or use utility classes like <code>Arrays<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ArrayList<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pros<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Dynamic resizing: ArrayList can grow or shrink as required.<\/li>\n\n\n\n<li>Built-in Methods: ArrayList provides numerous methods to easily manipulate data, like <code>add()<\/code>, <code>remove()<\/code>, <code>contains()<\/code>, etc.<\/li>\n\n\n\n<li>Generics Support: ArrayList supports generics, ensuring type safety.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Cons<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Overhead: Due to additional methods and dynamic resizing, ArrayLists might introduce some overhead.<\/li>\n\n\n\n<li>Initial Capacity: ArrayLists start with a default capacity, which might lead to memory wastage if not used. However, this can be managed using constructors that define initial capacity.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The choice between ArrayList and array should be based on specific requirements. For applications requiring dynamic data structures with frequent resizing and utility methods, ArrayList is the preferred choice. However, for performance-critical scenarios where the number of elements is known and fixed, arrays can be more suitable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Adding Elements to ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayLists in Java are dynamic, which means you can add elements to them after they have been declared. Let&#8217;s dive into the various methods available for adding elements to an ArrayList.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>add(E e)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method is used to append an element to the end of an ArrayList.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">add<\/span><span class=\"hljs-params\">(E e)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Banana, Cherry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><code>add(int index, E element)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method inserts a specific element at a specified position in the ArrayList, shifting the current element and any subsequent elements to the right.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">add<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> index, E element)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">ArrayList&lt;<span class=\"hljs-built_in\">String<\/span>&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\nfruits.add(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>); <span class=\"hljs-comment\">\/\/ Inserting \"Banana\" at index 1<\/span>\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Banana, Cherry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Note: It&#8217;s essential to ensure that the index is within the range of the ArrayList size (including 0). If you provide an index out of this range, an <code>IndexOutOfBoundsException<\/code> will be thrown.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bulk Addition: <code>addAll(Collection&lt;? extends E> c)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method is employed to append all elements from a collection to the end of an ArrayList. This is especially useful when you want to merge two lists or add multiple elements at once.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">addAll<\/span><span class=\"hljs-params\">(Collection&lt;? extends E&gt; c)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\n\r\nArrayList&lt;String&gt; moreFruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nmoreFruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\nmoreFruits.add(<span class=\"hljs-string\">\"Date\"<\/span>);\r\nmoreFruits.add(<span class=\"hljs-string\">\"Elderberry\"<\/span>);\r\n\r\nfruits.addAll(moreFruits); <span class=\"hljs-comment\">\/\/ Adding all elements from moreFruits to fruits<\/span>\r\n\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Banana, Cherry, Date, Elderberry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Additionally, there&#8217;s an overloaded version of the <code>addAll<\/code> method which allows you to add a collection at a specific index:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">addAll<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> index, Collection&lt;? extends E&gt; c)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For instance:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\n\r\nArrayList&lt;String&gt; berries = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nberries.add(<span class=\"hljs-string\">\"Strawberry\"<\/span>);\r\nberries.add(<span class=\"hljs-string\">\"Blueberry\"<\/span>);\r\n\r\nfruits.addAll(<span class=\"hljs-number\">1<\/span>, berries); <span class=\"hljs-comment\">\/\/ Inserting all berries at index 1<\/span>\r\n\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Strawberry, Blueberry, Banana]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">With these methods at your disposal, adding elements to an ArrayList becomes an effortless task, whether it&#8217;s a single addition, a specific indexed addition, or a bulk addition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Accessing Elements in ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayLists in Java provide multiple ways to access their elements. Whether you want to fetch a specific item or traverse the entire list, various methods make these tasks straightforward.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using the <code>get(int index)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>get()<\/code> method allows you to retrieve an element from a specific position in the ArrayList.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\">E <span class=\"hljs-title\">get<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> index)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\n\r\nString fruit = fruits.get(<span class=\"hljs-number\">1<\/span>); <span class=\"hljs-comment\">\/\/ Accessing element at index 1<\/span>\r\nSystem.out.println(fruit); <span class=\"hljs-comment\">\/\/ Outputs: Banana<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Iterating through an ArrayList<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Using Iterator<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>Iterator<\/code> interface provides a way to access elements sequentially without exposing the underlying structure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\nIterator&lt;String&gt; iterator = fruits.iterator();\r\n\r\n<span class=\"hljs-keyword\">while<\/span>(iterator.hasNext()) {\r\n    String fruit = iterator.next();\r\n    System.out.println(fruit);\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Using ListIterator (forward and backward iteration)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ListIterator<\/code> extends <code>Iterator<\/code> and allows both forward and backward iteration through the list. It offers methods like <code>hasPrevious()<\/code>, <code>previous()<\/code>, and more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\nListIterator&lt;String&gt; listIterator = fruits.listIterator();\r\n\r\n<span class=\"hljs-comment\">\/\/ Forward Iteration<\/span>\r\n<span class=\"hljs-keyword\">while<\/span>(listIterator.hasNext()) {\r\n    String fruit = listIterator.next();\r\n    System.out.println(fruit);\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ Backward Iteration<\/span>\r\n<span class=\"hljs-keyword\">while<\/span>(listIterator.hasPrevious()) {\r\n    String fruit = listIterator.previous();\r\n    System.out.println(fruit);\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Using for-each loop<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The for-each loop, introduced in Java 5, makes iterating through collections more concise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\n<span class=\"hljs-keyword\">for<\/span>(String fruit : fruits) {\r\n    System.out.println(fruit);\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Using Java 8 Streams<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">With Java 8, the Stream API was introduced, allowing a more functional approach to processing sequences of elements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\nfruits.stream().forEach(fruit -&gt; System.out.println(fruit));<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or even more concise with method references:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">fruits.stream().forEach(System.out::println);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Modifying Elements in ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the strengths of the ArrayList in Java is its flexibility in modifying the elements. Not only can you add or remove items, but you can also change the value of existing elements with ease.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting values: <code>set(int index, E element)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method is used to replace an element at a specific position in the ArrayList with a given element.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\">E <span class=\"hljs-title\">set<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> index, E element)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The method returns the element previously at the specified position.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; colors = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\ncolors.add(<span class=\"hljs-string\">\"Red\"<\/span>);\r\ncolors.add(<span class=\"hljs-string\">\"Blue\"<\/span>);\r\ncolors.add(<span class=\"hljs-string\">\"Yellow\"<\/span>);\r\n\r\nSystem.out.println(colors); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Red, Blue, Yellow]<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ Replacing the value at index 1 (Blue) with Green<\/span>\r\ncolors.set(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Green\"<\/span>);\r\n\r\nSystem.out.println(colors); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Red, Green, Yellow]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Batch Operations for Modification<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In many scenarios, you may want to perform batch operations to modify multiple elements in an ArrayList. Here are some approaches:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Using <code>replaceAll(UnaryOperator&lt;E> operator)<\/code> Method<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This method, introduced in Java 8, replaces each element of the list with the result of applying the given operator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;Integer&gt; numbers = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>));\r\n\r\n<span class=\"hljs-comment\">\/\/ Doubling each number in the list<\/span>\r\nnumbers.replaceAll(n -&gt; n * <span class=\"hljs-number\">2<\/span>);\r\n\r\nSystem.out.println(numbers); <span class=\"hljs-comment\">\/\/ Outputs: &#91;2, 4, 6, 8, 10]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Using Java 8 Streams for Modification<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">While streams are primarily designed for queries and not modifications, you can still use them in conjunction with collectors to produce a modified list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; words = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"apple\"<\/span>, <span class=\"hljs-string\">\"banana\"<\/span>, <span class=\"hljs-string\">\"cherry\"<\/span>));\r\n\r\n<span class=\"hljs-comment\">\/\/ Capitalizing each word in the list using streams<\/span>\r\nList&lt;String&gt; capitalizedWords = words.stream()\r\n                                     .map(String::toUpperCase)\r\n                                     .collect(Collectors.toList());\r\n\r\nSystem.out.println(capitalizedWords); <span class=\"hljs-comment\">\/\/ Outputs: &#91;APPLE, BANANA, CHERRY]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Note that the original list (<code>words<\/code>) remains unchanged, and we get a new list (<code>capitalizedWords<\/code>) with the modifications.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Using Iterators for In-Place Modification<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Iterators, particularly <code>ListIterator<\/code>, can also be used for in-place modifications of elements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; words = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"apple\"<\/span>, <span class=\"hljs-string\">\"banana\"<\/span>, <span class=\"hljs-string\">\"cherry\"<\/span>));\r\nListIterator&lt;String&gt; iterator = words.listIterator();\r\n\r\n<span class=\"hljs-keyword\">while<\/span>(iterator.hasNext()) {\r\n    String currentWord = iterator.next();\r\n    iterator.set(currentWord.toUpperCase());\r\n}\r\n\r\nSystem.out.println(words); <span class=\"hljs-comment\">\/\/ Outputs: &#91;APPLE, BANANA, CHERRY]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In this approach, the original list is modified directly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Removing Elements from ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayLists in Java offer several convenient methods to remove elements. Whether you&#8217;re targeting a single element, multiple elements, or even the entire list, these methods provide an efficient way to achieve your goal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>remove(int index)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method is used to remove an element at a specified index from the ArrayList. It shifts any subsequent elements to the left, subtracting one from their indices.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\">E <span class=\"hljs-title\">remove<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> index)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The method returns the element that was removed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\n\r\nString removedFruit = fruits.remove(<span class=\"hljs-number\">1<\/span>); <span class=\"hljs-comment\">\/\/ Removing element at index 1<\/span>\r\nSystem.out.println(removedFruit);  <span class=\"hljs-comment\">\/\/ Outputs: Banana<\/span>\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Cherry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><code>remove(Object o)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method removes the first occurrence of the specified element from the ArrayList, if it is present.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">remove<\/span><span class=\"hljs-params\">(Object o)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The method returns <code>true<\/code> if the element was found and removed, otherwise <code>false<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nfruits.add(<span class=\"hljs-string\">\"Apple\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\nfruits.add(<span class=\"hljs-string\">\"Cherry\"<\/span>);\r\n\r\n<span class=\"hljs-keyword\">boolean<\/span> isRemoved = fruits.remove(<span class=\"hljs-string\">\"Banana\"<\/span>);\r\nSystem.out.println(isRemoved);  <span class=\"hljs-comment\">\/\/ Outputs: true<\/span>\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Cherry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Bulk Removal<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><code>removeAll(Collection&lt;?> c)<\/code> Method<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This method removes from the ArrayList all of its elements that are contained in the specified collection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">removeAll<\/span><span class=\"hljs-params\">(Collection&lt;?&gt; c)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>, <span class=\"hljs-string\">\"Date\"<\/span>, <span class=\"hljs-string\">\"Elderberry\"<\/span>));\r\nArrayList&lt;String&gt; fruitsToRemove = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Date\"<\/span>));\r\n\r\nfruits.removeAll(fruitsToRemove);\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Banana, Cherry, Elderberry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\"><code>retainAll(Collection&lt;?> c)<\/code> Method<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This method retains only the elements in the ArrayList that are contained in the specified collection, removing all others.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">retainAll<\/span><span class=\"hljs-params\">(Collection&lt;?&gt; c)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>, <span class=\"hljs-string\">\"Date\"<\/span>, <span class=\"hljs-string\">\"Elderberry\"<\/span>));\r\nArrayList&lt;String&gt; fruitsToRetain = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\n\r\nfruits.retainAll(fruitsToRetain);\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Cherry]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Clearing All Elements: <code>clear()<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This method removes all the elements from the ArrayList, effectively clearing it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">clear<\/span><span class=\"hljs-params\">()<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\nfruits.clear();\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">ArrayList and Multithreading<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayList is one of the most commonly used implementations of the List interface in Java. However, when it comes to concurrent programming and multithreading, there are specific challenges and considerations you should be aware of.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding the Non-Thread Safety of ArrayList<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An <code>ArrayList<\/code> is not thread-safe, meaning that if multiple threads access it concurrently and at least one of the threads modifies it structurally, it must be synchronized externally. Structural modifications include adding or removing elements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When an <code>ArrayList<\/code> undergoes concurrent modification without appropriate synchronization, the outcomes can be unpredictable. There&#8217;s no guarantee that one thread&#8217;s changes are visible to another thread, which can lead to data inconsistency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Concurrent Modification Exception: What and Why?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What?<\/strong> The <code>ConcurrentModificationException<\/code> is a runtime exception that can be thrown by methods that have detected concurrent modification of an object when such modification is not permissible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why?<\/strong> Imagine a scenario where one thread is iterating over an ArrayList, and another thread modifies it by adding or removing elements. This could lead to unexpected results or errors during the iteration process. For instance, if an element is removed from a list while it&#8217;s being iterated over, the iteration could skip some elements or throw an error due to unexpected resizing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To mitigate such issues, the iterator of ArrayList (and many other collections in Java&#8217;s standard library) checks if the list has been modified after the iterator was created. If it detects such modifications, it throws a <code>ConcurrentModificationException<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>));\r\n<span class=\"hljs-keyword\">for<\/span> (String item : list) {\r\n    <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-string\">\"B\"<\/span>.equals(item)) {\r\n        list.remove(item);  <span class=\"hljs-comment\">\/\/ This will throw ConcurrentModificationException<\/span>\r\n    }\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Synchronized ArrayList using <code>Collections.synchronizedList()<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To make an ArrayList thread-safe, Java provides a utility method: <code>Collections.synchronizedList()<\/code>. This method returns a synchronized (thread-safe) list backed by the specified list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">List&lt;E&gt; synchronizedList = Collections.synchronizedList(<span class=\"hljs-keyword\">new<\/span> ArrayList&lt;E&gt;());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">List&lt;String&gt; syncList = Collections.synchronizedList(<span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;());\r\nsyncList.add(<span class=\"hljs-string\">\"A\"<\/span>);\r\nsyncList.add(<span class=\"hljs-string\">\"B\"<\/span>);\r\nsyncList.add(<span class=\"hljs-string\">\"C\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">However, it&#8217;s essential to note that while individual operations on the synchronized list are thread-safe, compound operations (like iterations) are not necessarily so. For such operations, you&#8217;d need to synchronize on the list itself:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">synchronized<\/span>(syncList) {\r\n    <span class=\"hljs-keyword\">for<\/span> (String item : syncList) {\r\n        <span class=\"hljs-comment\">\/\/ process item<\/span>\r\n    }\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">While ArrayLists are incredibly efficient for single-threaded applications, they require additional considerations and adaptations when used in multithreaded environments. By understanding these challenges and using tools like <code>Collections.synchronizedList()<\/code>, you can ensure the thread safety of your ArrayList operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Searching and Sorting in ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ArrayLists in Java offer a range of methods to perform search and sort operations. Being a part of the broader Collections framework, ArrayList benefits from several utility methods provided by the <code>Collections<\/code> class.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Searching in ArrayList<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><code>indexOf(Object o)<\/code> Method<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>indexOf()<\/code> method returns the index of the first occurrence of the specified element in the ArrayList, or -1 if the list doesn&#8217;t contain the element.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">indexOf<\/span><span class=\"hljs-params\">(Object o)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; colors = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Red\"<\/span>, <span class=\"hljs-string\">\"Green\"<\/span>, <span class=\"hljs-string\">\"Blue\"<\/span>, <span class=\"hljs-string\">\"Green\"<\/span>));\r\n<span class=\"hljs-keyword\">int<\/span> index = colors.indexOf(<span class=\"hljs-string\">\"Green\"<\/span>);\r\nSystem.out.println(index); <span class=\"hljs-comment\">\/\/ Outputs: 1<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\"><code>lastIndexOf(Object o)<\/code> Method<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>lastIndexOf()<\/code> method returns the index of the last occurrence of the specified element, or -1 if the list doesn&#8217;t contain the element.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">lastIndexOf<\/span><span class=\"hljs-params\">(Object o)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; colors = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Red\"<\/span>, <span class=\"hljs-string\">\"Green\"<\/span>, <span class=\"hljs-string\">\"Blue\"<\/span>, <span class=\"hljs-string\">\"Green\"<\/span>));\r\n<span class=\"hljs-keyword\">int<\/span> lastIndex = colors.lastIndexOf(<span class=\"hljs-string\">\"Green\"<\/span>);\r\nSystem.out.println(lastIndex); <span class=\"hljs-comment\">\/\/ Outputs: 3<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Sorting in ArrayList<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Using <code>Collections.sort()<\/code> Method with Custom Comparators<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java provides the <code>Collections.sort()<\/code> method to sort lists, including ArrayLists. By default, it sorts in natural order, but you can provide a custom <code>Comparator<\/code> to dictate the sort order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; fruits = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"Apple\"<\/span>, <span class=\"hljs-string\">\"Banana\"<\/span>, <span class=\"hljs-string\">\"Cherry\"<\/span>));\r\nCollections.sort(fruits);\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Apple, Banana, Cherry]<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ Sorting in descending order using a custom comparator<\/span>\r\nCollections.sort(fruits, Comparator.reverseOrder());\r\nSystem.out.println(fruits); <span class=\"hljs-comment\">\/\/ Outputs: &#91;Cherry, Banana, Apple]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Binary Search in ArrayList<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Using <code>Collections.binarySearch()<\/code> Method<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>Collections.binarySearch()<\/code> method allows you to efficiently search for an element in a <strong>sorted<\/strong> list. If the list is not sorted, the results are undefined.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">binarySearch<\/span><span class=\"hljs-params\">(List&lt;? extends Comparable&lt;? <span class=\"hljs-keyword\">super<\/span> T&gt;&gt; list, T key)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For custom objects or specific sorting orders, you can also pass a <code>Comparator<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;Integer&gt; numbers = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">9<\/span>));\r\n<span class=\"hljs-keyword\">int<\/span> index = Collections.binarySearch(numbers, <span class=\"hljs-number\">5<\/span>);\r\nSystem.out.println(index); <span class=\"hljs-comment\">\/\/ Outputs: 2<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Cloning and Converting ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The ability to clone and convert ArrayLists to other data types in Java, like arrays, and vice versa, is essential for efficient data manipulation and transformation. Below, we explore these processes in detail.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cloning an ArrayList<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>clone()<\/code> Method: Creating a Shallow Copy<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>clone()<\/code> method of the <code>ArrayList<\/code> class is used to create a copy of the ArrayList. However, it&#8217;s crucial to note that this is a shallow copy. While the ArrayList itself is a new instance, the elements inside are references to the same objects as the original list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">Object<\/span> clone()<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; originalList = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>));\r\nArrayList&lt;String&gt; clonedList = (ArrayList&lt;String&gt;) originalList.clone();\r\n\r\nSystem.out.println(clonedList); <span class=\"hljs-comment\">\/\/ Outputs: &#91;A, B, C]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Converting ArrayList to Array<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>toArray(T[] a)<\/code> Method<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This method returns an array containing all the elements in the list in the proper order. The runtime type of the returned array is that of the provided array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">&lt;T&gt; T&#91;] toArray(T&#91;] a)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>));\r\nString&#91;] array = list.toArray(<span class=\"hljs-keyword\">new<\/span> String&#91;<span class=\"hljs-number\">0<\/span>]);\r\n\r\nSystem.out.println(Arrays.toString(array)); <span class=\"hljs-comment\">\/\/ Outputs: &#91;A, B, C]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Converting Array to ArrayList<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>Arrays.asList(T... a)<\/code> Method<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This utility method provided by the <code>Arrays<\/code> class returns a fixed-size list backed by the specified array. This implies that any changes to the returned list are reflected in the original array and vice-versa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">static<\/span> &lt;T&gt; <span class=\"hljs-function\">List&lt;T&gt; <span class=\"hljs-title\">asList<\/span><span class=\"hljs-params\">(T... a)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">String&#91;] array = {<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>};\r\nList&lt;String&gt; list = Arrays.asList(array);\r\n\r\nlist.set(<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-string\">\"X\"<\/span>); <span class=\"hljs-comment\">\/\/ Modifying the list also changes the original array<\/span>\r\nSystem.out.println(list); <span class=\"hljs-comment\">\/\/ Outputs: &#91;X, B, C]<\/span>\r\nSystem.out.println(Arrays.toString(array)); <span class=\"hljs-comment\">\/\/ Outputs: &#91;X, B, C]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"content-box-blue wp-block-paragraph\">It&#8217;s important to note that the list returned from <code>Arrays.asList()<\/code> has a fixed size. This means methods like <code>add()<\/code> or <code>remove()<\/code> will throw <code>UnsupportedOperationException<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ArrayList with Custom Objects<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When working with ArrayLists that store custom objects, it&#8217;s crucial to understand the significance of overriding methods like <code>equals()<\/code>, <code>hashCode()<\/code>, and potentially <code>compareTo()<\/code>. These methods play a pivotal role in operations such as searching, removing, sorting, and storing objects in hashed data structures.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Importance of Overriding<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>equals()<\/code> Method<\/strong>: By default, the <code>equals()<\/code> method in the <code>Object<\/code> class checks for reference equality. If you want to compare two objects based on their content, you need to override the <code>equals()<\/code> method.<\/li>\n\n\n\n<li><strong><code>hashCode()<\/code> Method<\/strong>: If you override the <code>equals()<\/code> method, you must also override the <code>hashCode()<\/code> method. This is to ensure that equal objects produce the same hash code, which is a fundamental contract for storing objects in hashed data structures like <code>HashSet<\/code> or <code>HashMap<\/code>.<\/li>\n\n\n\n<li><strong><code>compareTo()<\/code> Method<\/strong>: If you intend to sort custom objects or store them in sorted collections like <code>TreeSet<\/code>, your custom class should implement the <code>Comparable<\/code> interface and override the <code>compareTo()<\/code> method. This method defines the natural order of objects.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Examples<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Creating a Custom Class <code>Student<\/code><\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title\">Comparable<\/span>&lt;<span class=\"hljs-title\">Student<\/span>&gt; <\/span>{\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">int<\/span> id;\r\n    <span class=\"hljs-keyword\">private<\/span> String name;\r\n\r\n    <span class=\"hljs-comment\">\/\/ Constructor, getters, setters...<\/span>\r\n\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">equals<\/span><span class=\"hljs-params\">(Object obj)<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-keyword\">this<\/span> == obj) <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">true<\/span>;\r\n        <span class=\"hljs-keyword\">if<\/span> (obj == <span class=\"hljs-keyword\">null<\/span> || getClass() != obj.getClass()) <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">false<\/span>;\r\n        Student student = (Student) obj;\r\n        <span class=\"hljs-keyword\">return<\/span> id == student.id &amp;&amp; name.equals(student.name);\r\n    }\r\n\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">hashCode<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> Objects.hash(id, name);\r\n    }\r\n\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">compareTo<\/span><span class=\"hljs-params\">(Student other)<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> Integer.compare(<span class=\"hljs-keyword\">this<\/span>.id, other.id);\r\n    }\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Creating an ArrayList of Custom Objects and Performing Operations<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;Student&gt; students = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nstudents.add(<span class=\"hljs-keyword\">new<\/span> Student(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Alice\"<\/span>));\r\nstudents.add(<span class=\"hljs-keyword\">new<\/span> Student(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">\"Bob\"<\/span>));\r\nstudents.add(<span class=\"hljs-keyword\">new<\/span> Student(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">\"Charlie\"<\/span>));\r\n\r\n<span class=\"hljs-comment\">\/\/ Searching for an object<\/span>\r\nStudent bob = <span class=\"hljs-keyword\">new<\/span> Student(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">\"Bob\"<\/span>);\r\n<span class=\"hljs-keyword\">int<\/span> index = students.indexOf(bob);\r\nSystem.out.println(index); <span class=\"hljs-comment\">\/\/ Outputs: 1 because Alice's index is 0<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ Removing an object<\/span>\r\nstudents.remove(bob);\r\n\r\n<span class=\"hljs-comment\">\/\/ Sorting the list (based on the compareTo method in Student class)<\/span>\r\nCollections.sort(students);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Notice how the custom implementations of <code>equals()<\/code> and <code>hashCode()<\/code> enable the <code>indexOf()<\/code> and <code>remove()<\/code> methods to work seamlessly with our custom objects. The <code>compareTo()<\/code> method provides a natural order when sorting the ArrayList.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ArrayList and Memory Management<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java&#8217;s ArrayList offers a dynamic array implementation of the List interface. While arrays in Java have a fixed size once created, ArrayLists can grow and shrink as needed. This flexibility comes with its own intricacies concerning memory management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding How ArrayList Grows (Dynamically Resizing)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Initial Capacity<\/strong>: When you create an ArrayList without specifying an initial capacity, it starts with a default initial capacity (typically 10, though this may vary between Java implementations).<\/li>\n\n\n\n<li><strong>Resizing<\/strong>: As elements get added to the ArrayList and it reaches its capacity, it needs to grow. The ArrayList achieves this by creating a new array with larger capacity and copying the elements from the old array to the new one. Typically, the new capacity is 1.5 times the old capacity. This resizing operation can be expensive in terms of time complexity, especially if it occurs frequently.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Trimming to Size: <code>trimToSize()<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Over the course of its lifecycle, the actual number of elements in an ArrayList might become significantly less than its current capacity, especially after several add and remove operations. The excess reserved memory can be a wastage, especially in memory-constrained environments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>trimToSize()<\/code> method trims the capacity of the ArrayList instance to be the list&#8217;s current size. This can help minimize the storage of an ArrayList.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;Integer&gt; numbers = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(<span class=\"hljs-number\">100<\/span>); <span class=\"hljs-comment\">\/\/ Initial capacity set to 100<\/span>\r\nnumbers.add(<span class=\"hljs-number\">1<\/span>);\r\nnumbers.add(<span class=\"hljs-number\">2<\/span>);\r\nnumbers.add(<span class=\"hljs-number\">3<\/span>);\r\n\r\n<span class=\"hljs-comment\">\/\/ Trim the capacity from 100 to 3 (the actual number of elements)<\/span>\r\nnumbers.trimToSize();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Ensuring Capacity: <code>ensureCapacity(int minCapacity)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes, you might know in advance that your ArrayList will grow to hold a large number of elements. To avoid frequent resizing operations, which can be expensive, you can use the <code>ensureCapacity()<\/code> method. This method ensures that the ArrayList can hold at least the number of elements specified by the minimum capacity argument without needing to undergo resizing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;Integer&gt; numbers = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nnumbers.ensureCapacity(<span class=\"hljs-number\">100<\/span>); <span class=\"hljs-comment\">\/\/ Pre-allocate space for 100 elements<\/span>\r\n\r\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; <span class=\"hljs-number\">100<\/span>; i++) {\r\n    numbers.add(i);\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In the above example, despite adding 100 elements, the ArrayList won&#8217;t need to resize since we&#8217;ve ensured the required capacity in advance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful ArrayList Methods<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ArrayList<\/code> in Java is packed with numerous utility methods that enable developers to manipulate, query, and interact with the data efficiently. Let&#8217;s explore some of these handy methods:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Inspection Methods<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><code>isEmpty()<\/code> Method:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This method checks if the ArrayList is empty or not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-55\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">isEmpty<\/span><span class=\"hljs-params\">()<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-55\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-56\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nSystem.out.println(list.isEmpty()); <span class=\"hljs-comment\">\/\/ Outputs: true<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-56\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\"><code>contains(Object o)<\/code> Method:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Checks if the ArrayList contains the specified element.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-57\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">boolean<\/span> <span class=\"hljs-title\">contains<\/span><span class=\"hljs-params\">(Object o)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-57\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-58\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>));\r\nSystem.out.println(list.contains(<span class=\"hljs-string\">\"B\"<\/span>)); <span class=\"hljs-comment\">\/\/ Outputs: true<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-58\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\"><code>size()<\/code> Method:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Returns the number of elements in the ArrayList.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-59\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">size<\/span><span class=\"hljs-params\">()<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-59\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-60\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>));\r\nSystem.out.println(list.size()); <span class=\"hljs-comment\">\/\/ Outputs: 3<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-60\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">ArrayList&#8217;s <code>subList(int fromIndex, int toIndex)<\/code> Method<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>subList()<\/code> method returns a view of the portion of the list between the specified indices. It&#8217;s worth noting that the returned sublist is backed by the original list, meaning changes in the sublist will reflect in the original list and vice-versa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Syntax<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-61\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\">List&lt;E&gt; <span class=\"hljs-title\">subList<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> fromIndex, <span class=\"hljs-keyword\">int<\/span> toIndex)<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-61\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Example<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-62\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(Arrays.asList(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-string\">\"C\"<\/span>, <span class=\"hljs-string\">\"D\"<\/span>, <span class=\"hljs-string\">\"E\"<\/span>));\r\nList&lt;String&gt; subList = list.subList(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">4<\/span>);\r\nSystem.out.println(subList); <span class=\"hljs-comment\">\/\/ Outputs: &#91;B, C, D]<\/span>\r\n\r\nsubList.set(<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-string\">\"X\"<\/span>);\r\nSystem.out.println(list); <span class=\"hljs-comment\">\/\/ Outputs: &#91;A, X, C, D, E]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-62\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The indices are inclusive of the starting index (<code>fromIndex<\/code>) and exclusive of the ending index (<code>toIndex<\/code>), meaning the element at the starting index is included, but the element at the ending index is not.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best Practices when using ArrayList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ArrayList<\/code> is one of the most popular and versatile data structures in Java. When using it, there are some best practices that can ensure smooth and efficient operations, as well as prevent common pitfalls.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Avoiding Null Elements: The Problems and Solutions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problems<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>NullPointerException<\/strong>: This is one of the most common runtime exceptions in Java. When you try to invoke a method on a null object, it results in this exception.<\/li>\n\n\n\n<li><strong>Inconsistent Behavior<\/strong>: When you use nulls, operations like sorting can become unpredictable. For example, sorting an ArrayList containing nulls can lead to a <code>NullPointerException<\/code>.<\/li>\n\n\n\n<li><strong>Complexity in Business Logic<\/strong>: Nulls can complicate business logic since you constantly need to check for null values before processing the elements.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Solutions<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use Optional<\/strong>: Introduced in Java 8, <code>Optional<\/code> can be used to represent a value that might be absent without relying on null.<\/li>\n\n\n\n<li><strong>Prevent Adding Nulls<\/strong>: Before adding elements to the list, always check for null and decide on a strategy (skip, replace with a default value, or throw an exception).<\/li>\n\n\n\n<li><strong>Use Null Object Pattern<\/strong>: Instead of using null, use a default instance of the object that represents an &#8220;empty&#8221; or &#8220;default&#8221; state.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Using Generics for Type Safety<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Benefits<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compile-Time Type Checking<\/strong>: Generics ensure that the type of elements you add to the <code>ArrayList<\/code> is checked at compile time, preventing potential <code>ClassCastException<\/code> at runtime.<\/li>\n\n\n\n<li><strong>Readable and Maintainable Code<\/strong>: Generics add clarity to your code, making it more readable and maintainable.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Practice<\/strong>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-63\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-comment\">\/\/ Without generics (not recommended)<\/span>\r\nArrayList list = <span class=\"hljs-keyword\">new<\/span> ArrayList();\r\nlist.add(<span class=\"hljs-string\">\"string\"<\/span>);\r\nlist.add(<span class=\"hljs-number\">123<\/span>); <span class=\"hljs-comment\">\/\/ No compile-time error but can lead to issues later<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ With generics (recommended)<\/span>\r\nArrayList&lt;String&gt; stringList = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\r\nstringList.add(<span class=\"hljs-string\">\"string\"<\/span>);\r\n<span class=\"hljs-comment\">\/\/ stringList.add(123); \/\/ Compile-time error<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-63\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Minimizing Resizing Operations for Performance<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Understanding Dynamic Resizing<\/strong>: When an <code>ArrayList<\/code> grows beyond its current capacity, it gets resized. Typically, a new array is created, and the old data is copied to the new array, which can be an expensive operation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Best Practices<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Initialize with Proper Capacity<\/strong>: If you have a rough estimate of the number of elements that the list will hold, initialize the <code>ArrayList<\/code> with that capacity.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-64\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">ArrayList&lt;String&gt; list = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;(<span class=\"hljs-number\">100<\/span>); <span class=\"hljs-comment\">\/\/ Initial capacity of 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-64\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trim to Size<\/strong>: If the <code>ArrayList<\/code> has grown and shrunk multiple times and you know you won&#8217;t be adding more elements, you can trim it to its current size to free up memory.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-65\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">list.trimToSize();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-65\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In conclusion, adopting these best practices when working with <code>ArrayList<\/code> can prevent common pitfalls, boost performance, and ensure that your code remains maintainable and robust.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Brief about the Java Collections Framework The Java Collections Framework (JCF) is a crucial and comprehensive set of classes and interfaces in Java&#8217;s standard library, designed explicitly for creating and manipulating collections of objects. These collections are essentially data structures that allow us to organize, store, and manage data efficiently. The JCF was introduced [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,4],"tags":[],"class_list":["post-1380","post","type-post","status-publish","format-standard","category-java","category-programming-languages","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java ArrayList: From Iteration to Custom Objects<\/title>\n<meta name=\"description\" content=\"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java ArrayList: From Iteration to Custom Objects\" \/>\n<meta property=\"og:description\" content=\"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-14T12:51:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-14T12:51:18+00:00\" \/>\n<meta name=\"author\" content=\"w3compadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"w3compadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/\"},\"author\":{\"name\":\"w3compadmin\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"headline\":\"Java ArrayList: From Iteration to Custom Objects\",\"datePublished\":\"2023-09-14T12:51:12+00:00\",\"dateModified\":\"2023-09-14T12:51:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/\"},\"wordCount\":3305,\"commentCount\":0,\"articleSection\":[\"Java\",\"Programming Languages\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/\",\"name\":\"Java ArrayList: From Iteration to Custom Objects\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\"},\"datePublished\":\"2023-09-14T12:51:12+00:00\",\"dateModified\":\"2023-09-14T12:51:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"description\":\"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/java-arraylist-from-iteration-to-custom-objects\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Articles Home\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programming Languages\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/programming-languages\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Java ArrayList: From Iteration to Custom Objects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\",\"name\":\"Developer Articles Hub\",\"description\":\"\",\"alternateName\":\"Developer Articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\",\"name\":\"w3compadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165\",\"contentUrl\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165\",\"caption\":\"w3compadmin\"},\"sameAs\":[\"http:\\\/\\\/w3computing.com\\\/articles\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java ArrayList: From Iteration to Custom Objects","description":"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/","og_locale":"en_US","og_type":"article","og_title":"Java ArrayList: From Iteration to Custom Objects","og_description":"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)","og_url":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/","article_published_time":"2023-09-14T12:51:12+00:00","article_modified_time":"2023-09-14T12:51:18+00:00","author":"w3compadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"w3compadmin","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/#article","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/"},"author":{"name":"w3compadmin","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"headline":"Java ArrayList: From Iteration to Custom Objects","datePublished":"2023-09-14T12:51:12+00:00","dateModified":"2023-09-14T12:51:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/"},"wordCount":3305,"commentCount":0,"articleSection":["Java","Programming Languages"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/","url":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/","name":"Java ArrayList: From Iteration to Custom Objects","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/#website"},"datePublished":"2023-09-14T12:51:12+00:00","dateModified":"2023-09-14T12:51:18+00:00","author":{"@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"description":"ArrayList is one of the most popular implementations of the List interface provided by the Java Collections Framework (JCF)","breadcrumb":{"@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.w3computing.com\/articles\/java-arraylist-from-iteration-to-custom-objects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Articles Home","item":"https:\/\/www.w3computing.com\/articles\/"},{"@type":"ListItem","position":2,"name":"Programming Languages","item":"https:\/\/www.w3computing.com\/articles\/programming-languages\/"},{"@type":"ListItem","position":3,"name":"Java ArrayList: From Iteration to Custom Objects"}]},{"@type":"WebSite","@id":"https:\/\/www.w3computing.com\/articles\/#website","url":"https:\/\/www.w3computing.com\/articles\/","name":"Developer Articles Hub","description":"","alternateName":"Developer Articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.w3computing.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561","name":"w3compadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165","url":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165","contentUrl":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780747165","caption":"w3compadmin"},"sameAs":["http:\/\/w3computing.com\/articles"]}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"w3compadmin","author_link":"https:\/\/www.w3computing.com\/articles\/author\/w3compadmin\/"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/comments?post=1380"}],"version-history":[{"count":5,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1380\/revisions"}],"predecessor-version":[{"id":1385,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1380\/revisions\/1385"}],"wp:attachment":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/media?parent=1380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/categories?post=1380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/tags?post=1380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}