ArrayList is a class belongs to collections framework. For doing multiple works with static array is time consuming. Most important thing, arrays are generally static in nature which is not well for memory management. For overcoming these problems Java developers introduced ArrayList.
Note: if you familiar with C/C++ then you have might work with array and linked list. Why does we use Linked List over array ? because it support dynamic programming but arrays generally are static. |
Let’s understand Integer type ArrayList
import java.util.*; class arrayListInt{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(20); arr1.add(30); arr1.add(60); arr1.add(-90); // display whole array-list System.out.println(arr1); // deletion of elemenets from array-list using it’s index arr1.remove(2); // display after first deletion System.out.println(arr1); // delete index ‘0’ element from array-list arr1.remove(0); System.out.println(arr1); } } |

Note: add() method we can add’s new element into ArrayList. Using remove(n) => n(index number) method we can remove(delete) element from ArrayList. |
Let’s understand String type ArrayList
import java.util.*; class arrayListString{ public static void main(String[] args){ ArrayList <String> str = new ArrayList<>(); // adding new elements into array-list str.add(“alok”); str.add(“mohan”); str.add(“asha”); str.add(“raju”); str.add(“rekha”); // display whole array-list System.out.println(str); // deletion of elemenets from array-list using it’s index str.remove(“asha”); // display after first deletion System.out.println(str); // delete index ‘0’ element from array-list str.remove(“rekha”); System.out.println(str); str.remove(0); System.out.println(str); } } |

Note: in String type ArrayList we can remove element by it’s name or even with index. From above code, we first generate String type ArrayList and after that we removes elements by it’s name[“asha”,”rekha”]. |
How does ArrayList manages memory efficiently?
We can get the size/length of ArrayList using method size() . let’s see if we adding new element into ArrayList or remove existing element from ArrayList, then how it’s size changed?
Let’s use Integer and String type ArrayList one by one.
import java.util.*; class arrLstInt{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(20); arr1.add(30); arr1.add(60); arr1.add(-90); System.out.println(arr1); System.out.println(“array size is “+arr1.size()); arr1.remove(2); System.out.println(arr1); System.out.println(“array size is “+arr1.size()); arr1.remove(0); System.out.println(arr1); System.out.println(“array size is “+arr1.size()); } } |

import java.util.*; class arrListStr{ public static void main(String[] args){ ArrayList <String> str = new ArrayList<>(); // adding new elements into array-list str.add(“alok”); str.add(“mohan”); str.add(“asha”); str.add(“raju”); str.add(“rekha”); System.out.println(str); System.out.println(“string size “+str.size()); str.remove(“asha”); System.out.println(str); System.out.println(“string size “+str.size()); str.remove(“rekha”); System.out.println(str); System.out.println(“string size “+str.size()); str.remove(0); System.out.println(str); System.out.println(“string size “+str.size()); } } |

Other methods of ArraylIst
Here we will see some methods like max(), min(), sort() and so on. Let’s dig in…
- Write a code, which find maximum and minimum element from an Integer and String ArrayList.
// Integer Array import java.util.*; class arrMaxMin{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(20); arr1.add(30); arr1.add(60); arr1.add(-90); System.out.println(“array is “+arr1); System.out.println(“array maximum element is “+Collections.max(arr1)); System.out.println(“array minimum element is “+Collections.min(arr1)); } } |

let’s see another for string implementation
import java.util.*; class StrarrMaxMin{ public static void main(String[] args){ ArrayList <String> str = new ArrayList<>(); // adding new elements into array-list str.add(“bill gates”); str.add(“linus torvalds”); str.add(“steve jobs”); str.add(“sundar pichai”); str.add(“satya nadella”); System.out.println(“array is “+str); System.out.println(“array maximum element is “+Collections.max(str)); System.out.println(“array minimum element is “+Collections.min(str)); } } |

2. Write a code, to calculate the average of elements in ArrayList.
Note: for doing this operations we need to access ArrayList elements using it’s index. get(n) method is used for this purpose, n = index. |
import java.util.*; class arrLstIntavg{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(20); arr1.add(30); arr1.add(60); arr1.add(-90); System.out.println(“array is “+arr1); int n,sum=0; for(int i=0;i<arr1.size();i++){ n= arr1.get(i); sum=n+sum; } int avg=sum/arr1.size(); System.out.println(“average is “+avg); } } |

3. Write a code, to sort an integer and string type ArrayList in ascending order.
Note: for doing ascending order we need to use Collection class’s sort() method. For Descending order use can use Collections.sort(arrayName, Collections.reverseOrder()). |
// Integer arrayList sort ascending import java.util.*; class arrListasc{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(200); arr1.add(30); arr1.add(-6); arr1.add(-90); System.out.println(“array is “+arr1); Collections.sort(arr1); System.out.println(“after sort array is “+arr1); } } |

let’s see another implementation
// // Integer arrayList sort descending import java.util.*; class arrListdsc{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(200); arr1.add(30); arr1.add(-6); arr1.add(-90); System.out.println(“array is “+arr1); Collections.sort(arr1, Collections.reverseOrder()); System.out.println(“after reverse array is “+arr1); } } |

4. Write a code, to convert an arraylist into normal array.
// Integer ArrayList to normal array import java.util.*; class arrListToArray{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(200); arr1.add(30); arr1.add(-6); arr1.add(-90); System.out.println(“arraylist is “+arr1); // declaring array ‘marr’ Integer marr[] = new Integer[arr1.size()]; /* converting ArrayList ‘arr1’ to normal array ‘marr’ using toArray() method */ arr1.toArray(marr); System.out.println(“normal array is “); int i=0; while(i<5){ System.out.println(“index is -> “+i); System.out.println(“element is -> “+marr[i]); i++; } } } |

import java.util.*; class StrarrListToArray{ public static void main(String[] args){ ArrayList <String> str = new ArrayList<>(); // adding new elements into array-list str.add(“bill gates”); str.add(“linus torvalds”); str.add(“steve jobs”); str.add(“sundar pichai”); str.add(“satya nadella”); System.out.println(“String ArrayList is -> “+str); // declaring String normal array String strArr[] = new String[str.size()]; // converting String ArrayList ‘str’ into normal array ‘strArr’ str.toArray(strArr); System.out.println(“normal string array is: “); for(int i=0;i<str.size();i++){ System.out.println(“index is -> “+i); System.out.println(“element is -> “+strArr[i]); } } } |

5. Write a code, which checks an element present or not in Integer/String type ArrayList.
// Integer arraylist import java.util.*; class IntArrexist{ public static void main(String[] args){ ArrayList <Integer> arr1 = new ArrayList<>(); // adding new elements into array-list arr1.add(10); arr1.add(200); arr1.add(30); arr1.add(-6); arr1.add(-90); System.out.println(“array is “+arr1); System.out.println(“Enter element to find: “); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(arr1.contains(n)){ System.out.println(“element found!!”); } } } |

Let’s implement this for string arraylist.
// String arraylist import java.util.*; class StrArrexist{ public static void main(String[] args){ ArrayList <String> str = new ArrayList<>(); // adding new elements into array-list str.add(“tony”); str.add(“thor”); str.add(“steve”); str.add(“captain”); str.add(“daredevil”); System.out.println(“String ArrayList is -> “+str); System.out.println(“enter element to find: “); Scanner sc = new Scanner(System.in); String n = sc.next(); System.out.println(“search string is “+n); if(str.contains(n)){ System.out.println(“string element found!!”); } } } |

6. Write a code, which adds new element into String arraylist.
import java.util.ArrayList; public class StrLstAdd { public static void main(String[] args) { ArrayList <String> arr = new ArrayList<>(); arr.add(“Java”); arr.add(“python”); arr.add(“C”); arr.add(“PHP”); System.out.println(“arraylist -> “+arr); arr.add(0,”javascript”); System.out.println(“after arraylist -> “+arr); arr.add(3,”dart”); System.out.println(“after arraylist -> “+arr); } } |

Note: add(m,n) method m-> index, n-> element . This operations also same for Integer arraylist.