
ArrayList Class implements List Interface. In the last chapter, we have read about all the classes and their features as well as limitations. Now, we will understand all these concepts at the code level.
- Class: ArrayList
- Interface: List
- Package: java.util
Key points of ArrayList
- Stores objects as a list of elements and Any number of elements can be added to the list.
- It is a resizable array which increases the array size whenever we add new items in the list.
- Due to the above limitation Array is faster than ArrayList.
- The default size of the ArrayList object is 10.
- Ability to store similar as well as different types of elements to a single list.
- It allows duplicate values in the list.
- All the elements in the list remain in the same order in which we have added them even we add, remove, insert a new element in the list.
- Each element has an integer type index value to locate in the list. like 0, 1, 2, 3 and so on.
- Searching any specific value(element) in the list is slow.
- Searching for any specific value(element) using the index number is fast on the list.
- Traversing the list is faster.
- Sorting the list is possible.
- Use ArrayList, if you want to add/remove data from the end of the list.
Declaration of ArrayList
Using the below methods we could create a list for any type of non-primitive data type.
// Declaration of ArrayList
ArrayList<String> stringList = new ArrayList<String>();
ArrayList<Integer> integerList=new ArrayList<Integer>();
List<String> list1=new ArrayList<String>();
ArrayList stringList2=new ArrayList<String>();
ArrayList integerList2=new ArrayList<Integer>();
List list2=new ArrayList<String>();
ArrayList list3=new ArrayList<>();
List list4=new ArrayList<>();
Adding values into the ArrayList objects
As an example, we are taking one object for String and one for Integer type values. add() method is used to add values to the lists. We can add duplicate values in ArrayList. Items would be added to the list at the end of the list using add() method.
// Adding String values into the 'stringList' object.
ArrayList<String> stringList=new ArrayList<String>();
stringList.add("Java");
stringList.add("C#");
stringList.add("Selenium");
stringList.add("Appium");
stringList.add("TestNG");
stringList.add("Java");
// Adding Integer values into the 'integerList' object.
ArrayList<Integer> integerList=new ArrayList<Integer>();
integerList.add(10);
integerList.add(20);
integerList.add(30);
integerList.add(10);
Adding different type of values in a single List object
Look at the declaration part, we haven’t mentioned any data type. Hence, we could add any type of data on the same List. But it is considered as a bad practice while programming.
// Adding mixed type of values into the single list
ArrayList list3=new ArrayList<>();
list3.add("Java");
list3.add(10);
list3.add(2.5);
list3.add('a');
list3.add(true);
Data manipulation within a list object
In this section will learn about basic operations and methods of ArrayList Objects.
- Traversing of List using a for-each loop
- Traversing of List using Iterator
- Adding null value is allowed but it will throw an exception while accessing the values by converting Object to String or any other data type.
- Getting the total number of items using size()
- Getting index value based on the item value using indexOf(Object)
- Accessing any item using the index key and get(index)
- Add new data at the end of the list using add()
- Adding data using index key in add(index, value)
- removing specific data using the index or value in remove()
- removing items using a reference of other list using removeAll(Collection)
- Searching value or list using contains() and containsAll()
Traversing of List using a for-each loop
To traverse a list for-each loop is the best and easy method.
// Adding String values into the 'stringList' object.
ArrayList<String> stringList=new ArrayList<String>();
stringList.add("Java");
stringList.add("C#");
stringList.add("Selenium");
stringList.add("Appium");
stringList.add("TestNG");
stringList.add("Java");
// Traversing using for-each loop
for (String string : stringList)
{
System.out.println(string);
}
Traversing of List using Iterator
Iterator is an Interface that is also used to convert list into the iterator object. It makes traversing easier.
Note: Adding null value is allowed but it will throw an exception while traversing using the Iterator.
- 2 important methods in the Iterator object
- hasNext(): Checks if iterator object has more items.
- next(): returns next item from the list
// Adding mixed type of values into the single list
ArrayList list3=new ArrayList<>();
list3.add("Java");
list3.add(10);
list3.add(2.5);
list3.add('a');
list3.add(true);
System.out.println("Traversing Mixed list using Iterator object.");
Iterator iterator= list3.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
Getting the total number of items using size()
// Adding mixed type of values into the single list
ArrayList list3=new ArrayList<>();
list3.add("Java");
list3.add(10);
list3.add(2.5);
list3.add('a');
list3.add(true);
System.out.println("Total Items: "+list3.size());
Output:
Total Items: 5
Getting index value based on the item value using indexOf(Object)
ArrayList<String> stringList1=new ArrayList<String>();
stringList1.add("Java");
stringList1.add("C#");
stringList1.add("Selenium");
stringList1.add("Appium");
stringList1.add("TestNG");
stringList1.add("Java");
System.out.printf("\nIndex value is %d for keyword.\n",stringList1.indexOf("TestNG"));
Output:
Index value is 4 for keyword.
Accessing any item using the index key and get(index)
As we all know, the index starts with 0, hence to access the 3rd element in the list we have to pass 2 as index value in the get(index) method.
// Adding mixed type of values into the single list
ArrayList list3=new ArrayList<>();
list3.add("Java"); // index=0
list3.add(10); // index=1
list3.add(2.5); // index=2
list3.add('a'); // index=3
list3.add(true); // index=4
System.out.println("Items at 3 poisition: "+list3.get(2));
Output:
Items at 3 poisition: 2.5
Add new data at the end of the list using add()
When we are using add() method to insert a new value into the list, it will automatically be added to the end of the list.
To understand this let’s develop a program to print the table of any value. In this example, we are using add() method only once but within a for a loop.
ArrayList<Integer> table=new ArrayList<Integer>();
int keyValue=3;
for(int i=1;i<=10;i++)
{
table.add(keyValue*i);
}
System.out.printf("Table of %d :\n",keyValue);
for (Integer value : table)
{
System.out.println(value);
}
Output:
Table of 3 :
3
6
9
12
15
18
21
24
27
30
Adding data using index key in add(index, value)
It doesn’t replace the existing value in the list. It just inserts a new value into the list and pushes the remaining list one step forward.
ArrayList<Integer> table=new ArrayList<Integer>();
int keyValue=3;
for(int i=1;i<=10;i++)
{
table.add(keyValue*i);
}
System.out.printf("Table of %d :\n",keyValue);
for (Integer value : table) {
System.out.println(value);
}
table.add(3, 678);
System.out.println("After adding value at 4th Position :");
for (Integer value : table) {
System.out.println(value);
}
Output;
After adding value at 4th Position :
3
6
9
678
12
15
18
21
24
27
30
Removing specific data using the index or value in remove()
- remove(index): removes the element from the specified index position
- remove(value): search the first occurrence of the value in the list and removes the same. In the below example, only the first occurrence of value “Java” removed from the list.
// Adding String values into the 'stringList' object.
ArrayList<String> stringList=new ArrayList<String>();
stringList.add("Java");
stringList.add("C#");
stringList.add("Selenium");
stringList.add("Appium");
stringList.add("TestNG");
stringList.add("Java");
System.out.println("List before removing data:\n"+stringList);
stringList.remove(2);
System.out.println("\nList after removing data via item index:\n"+stringList);
stringList.remove("Java");
System.out.println("\nList after removing data via item value:\n"+stringList);
Ouput:
List before removing data:
[Java, C#, Selenium, Appium, TestNG, Java]
List after removing data via item index:
[Java, C#, Appium, TestNG, Java]
List after removing data via item value:
[C#, Appium, TestNG, Java]
Removing items using a reference of other list using removeAll(Collection)
In this example, we are using two different ArrayLists stringList and refList. Now, when we use the removeAll() method. It removes all the matching values from stringList using the values from refList.
Also, note that it removes all duplicate entries from the stringList. earlier we have two entries present for text “Java”.
// Adding String values into the 'stringList' object.
ArrayList<String> stringList=new ArrayList<String>();
stringList.add("Java");
stringList.add("C#");
stringList.add("Selenium");
stringList.add("Appium");
stringList.add("TestNG");
stringList.add("Java");
// Adding mixed type of values into the single list
ArrayList refList=new ArrayList<>();
list3.add("Java");
list3.add(10);
list3.add(2.5);
list3.add('a');
list3.add("Appium");
// Removing values from 'stringList' using keys from 'list3'
stringList.removeAll(refList);
System.out.println("List after removing data using refernce of refList: "+stringList);
Output:
List before removing data:
[Java, C#, Selenium, Appium, TestNG, Java]
List after removing data using refernce of refList:
[C#, Selenium, TestNG]
Searching value or list using contains() and containsAll()
// Adding String values into the 'stringList' object.
ArrayList<String> stringList1=new ArrayList<String>();
stringList1.add("Java");
stringList1.add("C#");
stringList1.add("Selenium");
stringList1.add("Appium");
stringList1.add("TestNG");
stringList1.add("Java");
if(stringList1.contains("Appium"))
{
System.out.println("Keyword found.");
}
else
{
System.out.println("Keyword not found.");
}
ArrayList stringList2=new ArrayList<>();
stringList2.add("C#");
stringList2.add("Java");
stringList2.add("TestNG");
stringList2.add("C#");
if(stringList1.containsAll(stringList2))
{
System.out.println("Entire list found.");
}
else
{
System.out.println("Few items missing.");
}
TestNG:
- TestNG – 1 || Introduction and benefits of TestNG Framework.
- TestNG – 2 || Installation process and a sample program of TestNG.
- TestNG – 3 || Create and execute multiple Test Cases.
- TestNG – 4 || Let’s understand @Test Annotation and attributes.
- TestNG – 5 || Understand Assertion in TestNG.
- TestNG – 6 || Use of @BeforeMethod and @AfterMethod.
- TestNG – 7 || Use of @BeforeClass and @AfterClass.
- TestNG – 8 || Creation and execution of Test Suites.
- TestNG – 9 || Let’s move deep into the Test Suites.
- TestNG – 10 || Use @BeforeTest and @AfterTest Annotations.
- TestNG – 11 || Groups attribute with @Test Annotation.
- TestNG – 12 || Use of @BeforeGroups & @AfterGroups.
- TestNG – 13 || Use of @BeforeSuite & @AfterSuite.
- TestNG – 14 || DataProvider annotation & attribute.
- TestNG – 15 || DataProvider with parameters.
- TestNG – 16 || Access data from Excel sheet using DataProvider.
- TestNG – 17 || Passing multiple Parameters in testng xml.
- TestNG – 18 || Multiple Browser and Parallel Execution in TestNG.
- TestNG -19 || Concept of Parallel Execution.
- TestNG – 20 || Run TestNG Program using main() method.
- Computer Basics -1 || Introduction and Structure of Computer.
- Computer Basics -2 || Types of Computers and Usage.
- Computer Basics -3 || What are the different types of Software?
- Computer Basics -4 || Importance of Operating System(OS).
- Computer Basics -5 || Understanding of Number System.
- Computer Basics -6 || Understanding MS-DOS Commands.
- Computer Basics -7 || Important Features of MS-Word.
- Computer Basics -8 || Let’s learn the usage of MS-Excel.
- Computer Basics -9 || Understand and Implement Data Validation in Excel.
- Computer Basics -10 || How to apply Filter in a data set in Excel?
- Computer Basics -11 || Using Charts in place of Data Tables in Excel.
- Computer Basics -12 || Advantages of PivotCharts over Simple Charts in Excel.
- Computer Basics -13 || Creating pivot charts/tables in Excel.
- Abbreviations to Full-Forms in Computer Basics.
- Basic Java – 1 || Understand Java before start learning JAVA.
- Basic Java – 2 || Variables and Data Types used in JAVA.
- Basic Java – 3 || Understanding Class, Objects, Methods in Java.
- Basic Java – 4 || More on methods(Return Type and Parameters)
- Basic Java – 5 || Methods- Call by Value and Call by Reference in Java.
- Basic Java – 6 || Understanding of Constructor and Destructor in JAVA.
- Basic Java – 7 || Static Variables and Methods.
- Basic Java – 8 || Lets learn about Arrays in Java.
- Basic Java – 9 || Performing multiple operations using Java Operators.
- Basic Java – 10 || Conditions (If and Switch) in JAVA.
- Basic Java – 11 || for and for-each in Java. (Loops Part-1)
- Basic Java – 12 || Alternate looping concepts while and do-while. (Loops Part-2)
- Basic Java – 13 || Decimal values v/s Octal base(8) values in JAVA.
- Basic Java – 14 || Learn about String literals in Java.
- Basic Java – 15 || Runtime User Input using Scanner Class (Part-1).
- Basic Java – 16 || Runtime User Input using BufferedReader Class (Part-2).
- Basic Java – 17 || Runtime User Input using Console Class (Part-3).
- Basic Java – 18 || Difference between break and continue keywords.
- Basic Java – 19 || Sending Email using Java (Part-1).
- Basic Java – 20 || Sending Email with attachment using Java (Part-2).
- Basic Java – 21 || Stack memory and Heap memory in Java.
- Basic Java – 22 || Let’s learn more about String.
- Basic Java – 23 || String, StringBuffer & StringBuilder in Java.
- Basic Java – 24 || Exception Handling using Try Catch.
- Collection Types and features in Java. (Collection-1)
- Use of ArrayList Class in Java. (Collection-2)
- LinkedList Class implementation and usage. (Collection-3)
- Using HashMap in Java. (Collection-4)
- Using HashSet in Java. (Collection -5)
- File Handling | Reading data from word document(.doc or .docx) in JAVA.
- File Handling | Reading data from Excel files (.xls or .xlsx) using JAVA.
- File Handling | Writing data into an Excel(.XLSX or .XLS) File.
- File Handling | Implement formatting in Excel using Java.
- File Handling | Copy existing data from one workbook to another workbook in Java.
- File Handling | Reading data from PDF file using JAVA.
- File Handling || Traverse folders and subfolders in Java.
- File Handling || Reading and Writing data from a text file.
- File Handling || Multiple file creation using template based input data.
- Framework || Simple example of Key Driven Framework using excel sheet in Selenium(JAVA).
- QnA || How to use Constructors in Abstract class?
- QnA | Difference between Integer and int keywords.
- QnA | Can main method be overloaded?
- QnA | How do I reverse a String/Sentence in Java?
- QnA | Perform Multiplication and Division without * or / or % operators.
- QnA | How do I get the default value of data type?
- QnA | How to split String if it contains period symbol (.) in between?
- Different ways to Reverse a String in Java.
- Copy formatting & style of cells from one sheet to another.
- Getting IP address and Hostname using InetAddress Class.
- User inputs via Command Prompt using arguments of main() method of a class.
- Program for List and ArrayList in Java.
- Useful methods and implementation under Scanner Class.
- Swapping two variable values without using any third variable.
- Difference between int x= 10 and y=010 in Java.
- Parameterized Constructors v/s Setter and Getter function in JAVA.
- Override a Static Method.
- Selenium-12 || Select Class to handle drop-down.
- Selenium-11 || Use of Actions and Action Classes.
- Selenium-10 || Taking Screenshots using Selenium
- Selenium-9 || Understanding WebDriver API.
- Selenium-8 || Implementing Wait(s) in Selenium.
- Selenium-7 || Let’s learn to create complex XPath.
- Selenium-6 || XPath is the best way to locate web elements.
- Selenium-5 || Locating web elements using various type of Locators.
- Selenium-4 || Handling multiple web browsers.
- Selenium-3 || First program using Selenium Web Driver.
- Selenium-2 || Let’s learn Selenium IDE.
- Selenium-1 || Understanding Selenium and Selenium WebDriver.
- JIRA Tutorials-2 || Implement Search and Filter on JIRA Issues.
- JIRA Tutorials-1 || Basic understanding of JIRA.