In this tutorial, we will learn how to store user-defined class objects in Java ArrayList? in very easy technique and step by step. This topic is interesting to clear the more concepts of ArrayList in Java. We will show you three techniques using the constructor and without using constructor but all the techniques are easy to understand for you. 

How to store User-defined Class Objects in ArrayList

Store User-defined Class Objects in ArrayList, How to store user-defined class objects in ArrayList?
Store User-defined Class Objects in ArrayList

Program source code 1: Suppose there are three students whose name, id, rollNo have to add in the custom ArrayList. So First we will create a Student class. In this class, we will define more than one type of primitive data. The source code is given below:
    package customArrayList; public class Student { // Create instance variables name, id, and rollNo with datatype String, int, and int respectively. String name; int id; int rollNo; // Create three parameters constructor with parameters name, id, and rollNo. Student(String name, int id, int rollNo){; this.rollNo=rollNo;; } }
Now create a class addingData in which we will store the three Student class objects in the ArrayList.
    package customArrayList; import java.util.ArrayList; public class AddingData { // Create a ArrayList method with generic type 'Student'. ArrayList<Student> studentData(){ // Create three objects of the class Student and pass the arguments to the constructor. Student s1=new Student("Deep", 1234, 04); Student s2=new Student("Shubh", 4321, 20 ); Student s3=new Student("Riddhi", 1212, 02); // Create the object of ArrayList with generic type 'Student'. ArrayList<Student> studentlist=new ArrayList<Student>(); // Now add the Student objects in the ArrayList using reference variable studentlist. studentlist.add(s1); studentlist.add(s2); studentlist.add(s3); // Return object reference variable 'studentlist' of the array list to the method 'studentValue'. return studentlist; } }
Now create another class to retrieve the student data from the above class's studentData() method and iterate over them to get the student detail.
    package customArrayList; import java.util.ArrayList; public class RetriveStudents { public static void main(String[] args) { // Call AddingData class by creating the object of that class. AddingData data=new AddingData(); // Call studentData() method using reference variable data. ArrayList<Student> liststu=data.studentData(); // Now iterate and display all the Student data. for(Student st:liststu){ System.out.println("Student's name: "; System.out.println("Student ID "; System.out.println("Roll number: " +st.rollNo); } } }
    Output: Student's name: Deep Student ID 1234 Roll number: 4 Student's name: Shubh Student ID 4321 Roll number: 20 Student's name: Riddhi Student ID 1212 Roll number: 2

Program source code 2: The same program can also be done without using any constructor. See the below code and follow all steps to clear concepts.
    package customArrayList2; public class Student { // Declare instance variables name, phyMarks, mathsMarks, chemMarks, total, and per. String name; int phyMarks; int mathsMarks; int chemMarks; int total; float per; }
    package customArrayList2; import java.util.ArrayList; public class Studentdata { // Declare an array list method with generic type student. ArrayList<Student> addData(){ // Create two objects s1 and s2 of the student class and initialize the value of variables using reference variable s1 and s2. Student s1=new Student();"Shubh"; s1.phyMarks=95; s1.mathsMarks=100; s1.chemMarks=90;; s1.per=((*100)/300; Student s2=new Student();"Deep"; s2.phyMarks=80; s2.mathsMarks=85; s2.chemMarks=90; 0+85+90; s2.per=((*100)/300; // Create an array list object with a type of generic student. ArrayList<Student> al=new ArrayList<Student>(); // Call add() method to store the student class object in the array list using reference variable al. al.add(s1); al.add(s2); return al; } }
    package customArrayList2; import java.util.ArrayList; public class RetriveStudentData { // Declare an instance method. void fetchStudentData(){ // Create an object of the Studentdata class. Studentdata stdata=new Studentdata(); // Call addData() method using reference variable stdata. ArrayList<Student> liststu=stdata.addData(); // Now iterate and display all the student data. // enhance for loop - for each loop. for(Student student:liststu){ System.out.println("Name: "; System.out.println("Physics Marks: " +student.phyMarks); System.out.println("Maths Marks: " +student.mathsMarks); System.out.println("Chemistry Marks: " +student.chemMarks); System.out.println("Total Marks: "; System.out.println("Percentage:" +student.per); } } }
In this example program, we will create a client class to test our logic.
    package customArrayList2; public class TestStudentOperation { public static void main(String[] args) { Studentdata st=new Studentdata(); st.addData(); RetriveStudentData rsd=new RetriveStudentData(); rsd.fetchStudentData(); } }
    Output: Name: Shubh Physics Marks: 95 Maths Marks: 100 Chemistry Marks: 90 Total Marks: 285 Percentage: 95.0 Name: Deep Physics Marks: 80 Maths Marks: 85 Chemistry Marks: 90 Total Marks: 255 Percentage: 85.0
Program source code 3: In this example program, we will create a class Employee and we will iterate and display all employee data from the Employee class. So let's see the example. 
    package customArrayList3; import java.util.ArrayList; public class Employee { // Instance variables. int eNo; String name, address; // Declare a constructor. Employee(int eNo, String name, String address){ this.eNo=eNo;; this.address=address; } public Employee() { } // Display all employee data. void displayData(ArrayList<Employee> list){ System.out.println("Employee Detail"); for(Employee emp: list ){ System.out.println("Employee number: " +emp.eNo); System.out.println("Employee Name: "; System.out.println("Employee Address: " +emp.address); } } }
    package customArrayList3; import java.util.ArrayList; public class AddingEmployeeData { public static void main(String[] args) { Employee emp1=new Employee(102, "Shubh", "Nagpur" ); Employee emp2=new Employee(205, "Anjali", "Dhanbad"); Employee emp3=new Employee(333, "Shanjna", "Mumbai"); ArrayList<Employee> list=new ArrayList<Employee>(); list.add(emp1); list.add(emp2); list.add(emp3); Employee temp=new Employee(); // Call displayData method using temp reference variable object. temp.displayData(list); // Pass Arralist in the parameter. } }
    Output: Employee Detail Employee number: 102 Employee Name: Shubh Employee Address: Nagpur Employee number: 205 Employee Name: Anjali Employee Address: Dhanbad Employee number: 333 Employee Name: Shanna Employee Address: Mumbai
Final words 
We hope that this article will help you to clear the concept of Store user-defined class objects in ArrayList. All three example programs are very important to learn this topic.