ArrayList vs. LinkedList

                 Difference Between ArrayList & LinkedList

ArrayList vs. LinkedList

ArrayList is implemented as a resizable array. As more elements are added to ArrayList, its size is increased dynamically. It’s elements can be accessed directly by using the get and set methods, since ArrayList is essentially an array.
LinkedList is implemented as a double linked list. Its performance on add and remove is better than Arraylist, but worse on get and set methods.
Note: The default initial capacity of an ArrayList is pretty small. It is a good habit to construct the ArrayList with a higher initial capacity. This can avoid the resizing cost.
Performance of ArrayList vs. LinkedList :
The time complexity comparison is as follows:
arraylist-vs-linkedlist-complexity

ArrayList has O(n) time complexity for arbitrary indices of add/remove, but O(1) for the operation at the end of the list.
LinkedList has O(n) time complexity for arbitrary indices of add/remove, but O(1) for operations at end/beginning of the List.
ArrayList example:
ArrayList al = new ArrayList();
al.add(3);
al.add(2);
al.add(1);
al.add(4);
al.add(5);
al.add(6);
al.add(6);
 
Iterator iter1 = al.iterator();
while(iter1.hasNext()){
    System.out.println(iter1.next());
}
LinkedList example:
LinkedList ll = new LinkedList();
ll.add(3);
ll.add(2);
ll.add(1);
ll.add(4);
ll.add(5);
ll.add(6);
ll.add(6);
 
Iterator iter2 = ll.iterator();
while(iter2.hasNext()){
    System.out.println(iter2.next());
}

How to convert List to int[]?

The easiest way might be using ArrayUtils in Apache Commons Lang library.
int[] array = ArrayUtils.toPrimitive(list.toArray(new Integer[0]));

How to convert int[] into List?

The easiest way might still be using ArrayUtils in Apache Commons Lang library, like below.
List list = Arrays.asList(ArrayUtils.toObject(array));

Comments

Popular posts from this blog

8 Common Programming Mistakes

How CPU Works....!!