array objects java
В този урок за Java можете да се научите да създавате, инициализирате, сортирате масива от обекти в Java с пълни примери за кодове:
Какво е масив от обекти?
Както всички знаем, езикът за програмиране Java е свързан с обекти, тъй като е обектно-ориентиран език за програмиране.
Ако искате да съхранявате един обект във вашата програма, можете да го направите с помощта на променлива от тип обект. Но когато имате работа с множество обекти, препоръчително е да използвате масив от обекти.
=> Вижте Перфектното ръководство за обучение по Java тук.
Java е способна да съхранява обекти като елементи от масива заедно с други примитивни и персонализирани типове данни. Имайте предвид, че когато казвате „масив от обекти“, в масива се съхранява не самият обект, а препратките към обекта.
В този урок ще се запознаете със създаването, инициализацията, сортирането, както и примери за масива от обекти в Java.
Какво ще научите:
Как да създам масив от обекти в Java?
С помощта на класа ‘Object’ се създава масив от обекти.
Следващият израз създава масив от обекти.
Class_name [] objArray;
Като алтернатива можете също да декларирате масив от обекти, както е показано по-долу:
Class_nameobjArray[];
И двете горни декларации предполагат, че objArray е масив от обекти.
Така че, ако имате клас ‘Служител’, можете да създадете масив от обекти на служители, както е дадено по-долу:
Employee[] empObjects; OR Employee empObjects[];
Декларациите на масива от обекти по-горе ще трябва да бъдат създадени с помощта на „ново“, преди да бъдат използвани в програмата.
Можеш декларира и създава екземпляр на масива от обекти, както е показано по-долу:
Employee[] empObjects = new Employee[2];
Забележка че след като масив от обекти е създаден като по-горе, отделните елементи от масива от обекти трябва да бъдат създадени с помощта на new.
Горното изявление ще създаде масив от обекти ‘empObjects’ с 2 елемента / препратки към обекти.
Инициализирайте масив от обекти
След като масивът от обекти бъде създаден, трябва да го инициализирате със стойности. Тъй като масивът от обекти се различава от масива от примитивни типове, не можете да инициализирате масива по начина, по който го правите с примитивните типове.
В случай на масив от обекти, всеки елемент от масив, т.е.обект, трябва да бъде инициализиран. Вече обсъдихме, че масив от обекти съдържа препратки към действителните обекти на класа. По този начин, след като масивът от обекти е деклариран и инстанциран, трябва да създадете действителни обекти от класа.
Един от начините за инициализиране на масива от обекти е чрез използване на конструкторите. Когато създавате действителни обекти, можете да присвоите начални стойности на всеки от обектите, като предадете стойности на конструктора. Можете също така да имате отделен метод член в клас, който ще присвоява данни на обектите.
Следващата програма показва инициализацията на масивни обекти с помощта на конструктора.
Тук използвахме класа Служител. Класът има конструктор, който приема два параметъра, т.е. име на служител и идентификатор на служител. В основната функция, след като се създаде масив от служители, ние продължаваме и създаваме отделни обекти на служителя в класа.
След това предаваме начални стойности на всеки от обектите, използвайки конструктора.
Резултатът от програмата показва съдържание на всеки обект, който е инициализиран преди това .
class Main{ public static void main(String args[]){ //create array of employee object Employee[] obj = new Employee[2] ; //create & initialize actual employee objects using constructor obj[0] = new Employee(100,'ABC'); obj[1] = new Employee(200,'XYZ'); //display the employee object data System.out.println('Employee Object 1:'); obj[0].showData(); System.out.println('Employee Object 2:'); obj[1].showData(); } } //Employee class with empId and name as attributes class Employee{ int empId; String name; //Employee class constructor Employee(inteid, String n){ empId = eid; name = n; } public void showData(){ System.out.print('EmpId = '+empId + ' ' + ' Employee Name = '+name); System.out.println(); } }
Изход:
Примерната програма, която дадохме по-долу, показва член-функция на класа Employee, която се използва за присвояване на първоначалните стойности на обектите Employee.
Примерна програма за масив от обекти в Java
Даден е пълен пример, който демонстрира масива от обекти в Java.
В тази програма имаме клас на служител, който има идентификатори на служител (empId) и име на служител (име) като полета и ‘setData’ & ‘showData’ като методи, които присвояват данни на обекти на служители и показват съдържанието на обектите на служителите съответно.
В основния метод на програмата първо дефинираме масив от обекти на служители. Имайте предвид, че това е масив от препратки, а не действителни обекти. След това, използвайки конструктора по подразбиране, ние създаваме действителни обекти за класа Employee. След това на обектите се присвояват данни с помощта на метода setData.
И накрая, обектите извикват метода showData, за да покажат съдържанието на обектите на класа Employee.
class Main{ public static void main(String args[]){ //create array of employee object Employee[] obj = new Employee[2] ; //create actual employee object obj[0] = new Employee(); obj[1] = new Employee(); //assign data to employee objects obj[0].setData(100,'ABC'); obj[1].setData(200,'XYZ'); //display the employee object data System.out.println('Employee Object 1:'); obj[0].showData(); System.out.println('Employee Object 2:'); obj[1].showData(); } } //Employee class with empId and name as attributes class Employee{ int empId; String name; public void setData(intc,String d){ empId=c; name=d; } public void showData(){ System.out.print('EmpId = '+empId + ' ' + ' Employee Name = '+name); System.out.println(); } }
Изход:
Как да сортираме масив от обекти в Java?
Подобно на масив от примитивни типове, масив от обекти също може да бъде сортиран с помощта на метода ‘sort’ на класа Arrays.
Но разликата е, че класът, към който принадлежат обектите, трябва да реализира интерфейса ‘Comparable’, така че масивът от обекти да бъде сортиран. Също така трябва да замените метода ‘compareTo’, който ще реши полето, в което ще бъде сортиран масивът. Масивът от обекти по подразбиране се сортира във възходящ ред.
Следващата програма показва сортирането на масив от обекти. За тази цел използвахме клас Employee и масивът е сортиран въз основа на идентификатор на служител (empId).
import java.util.*; //employee class implementing comparable interface for array of objects class Employee implements Comparable { private String name; privateint empId; //constructor public Employee(String name, int empId) { this.name = name; this.empId = empId; } public String getName() { return name; } publicintgetempId() { return empId; } //overridden functions since we are working with array of objects @Override public String toString() { return '{' + 'name='' + name + ''' + ', EmpId=' + empId + '}'; } //compareTo method overridden for sorting array of objects @Override publicint compareTo(Employee o) { if (this.empId != o.getempId()) { returnthis.empId - o.getempId(); } returnthis.name.compareTo(o.getName()); } } //main class class Main { public static void main(String[] args) { //array of Employee objects Employee[] employees = { new Employee('Rick', 1), new Employee('Sam', 20), new Employee('Adi', 5), new Employee('Ben', 10) }; //print original array System.out.println('Original Array of Employee objects:'); System.out.println(Arrays.toString(employees)); //sort array on empId Arrays.sort(employees); //display sorted array System.out.println('
Sorted Array of Employee objects:'); System.out.println(Arrays.toString(employees)); } }
Изход:
Имайте предвид, че в горната програма класът Employee реализира сравним интерфейс. На второ място, методът compareTo е заменен, за да сортира дадения масив от обекти в полето empId.
Също така методът ‘toString’ е заменен, за да се улесни преобразуването на масива от обекти в низ.
често задавани въпроси
В # 1) Можете ли да имате масив от обекти в Java?
Отговор: Да. Java може да има масив от обекти, точно както може да има масив от примитивни типове.
В # 2) Какво представлява масив от обекти в Java?
Отговор: В Java масивът е динамично създаден обект, който може да има елементи, които са примитивни типове данни или обекти. На масива могат да бъдат зададени променливи, които са от тип обект.
В # 3) Как сортирате обекти в Java?
Отговор: За да сортираме обекти в Java, трябва да внедрим интерфейса ‘Comparable’ и да заменим метода ‘compareTo’ според определено поле. След това можем да използваме метода ‘Arrays.sort’, за да сортираме масив от обекти.
В # 4) Как сортирате обекти в ArrayList?
Отговор: ArrayList може да се сортира с помощта на метода Collections.sort () директно. Методът Collections.sort () сортира елементите естествено във възходящ ред.
Заключение
В този урок обсъдихме темата „Масив от обекти“ заедно с различните подтеми, свързани с масив от обекти. Видяхме примери за инициализиране и сортиране на масив от обекти.
За сортиране на класа, чиито обекти трябва да бъдат сортирани, трябва да се приложи интерфейсът ‘Comparable’ и също така да се замени методът ‘compareTo’. За да отпечатаме съдържанието на „Масив от обекти“, трябва също да заменим метода „toString“, за да можем да напишем цялото съдържание на всеки обект.
=> Посетете тук, за да видите серията за обучение за Java за всички.
Препоръчително четене
- Java Array - Декларирайте, създайте и инициализирайте масив в Java
- Урок за дължина на масив Java с примери за кодове
- Java Array - Как да отпечатвате елементи от масив в Java?
- Java Generic Array - Как да симулираме Generic Array в Java?
- Java Hello World - Създайте първата си програма в Java днес
- Многомерни масиви в Java (2d и 3d масиви в Java)
- Урок за интерфейс на Java и абстрактен клас с примери
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео