java list how create
Този урок за списък на Java обяснява как да създавате, инициализирате и отпечатвате списъци в Java. Урокът също така обяснява списък със списъци с пълен пример за код:
Този урок ще ви запознае със „списъка“ на структурата на данните, който е една от основните структури в интерфейса на Java Collection.
Списъкът в Java е поредица от елементи според ред. Интерфейсът List на пакета java.util е този, който реализира тази последователност от обекти, подредени по определен начин, наречен List.
=> Проверете ВСИЧКИ уроци по Java тук.
Подобно на масивите, елементите на списъка могат да бъдат достъпни и с помощта на индекси, като първият индекс започва от 0. Индексът показва определен елемент в индекс ‘i’, т.е. той е i елементи далеч от началото на списъка.
Някои от характеристиките на списъка в Java включват:
- Списъците могат да имат дублиращи се елементи.
- Списъкът може да съдържа и „нулеви“ елементи.
- Списъците поддържат родови лекарства, т.е.можете да имате общи списъци.
- Можете също да имате смесени обекти (обекти от различни класове) в същия списък.
- Списъците винаги запазват реда за вмъкване и позволяват позиционен достъп.
Какво ще научите:
- Списък в Java
- Заключение
Списък в Java
Интерфейсът на Java List е подтип на интерфейса на Java Collection. Това е стандартният интерфейс, който наследява интерфейса за събиране на Java.
По-долу е дадена диаграма на класа на интерфейса на Java List.

Както е показано в горната диаграма на класа, интерфейсът на списъка Java се простира от интерфейса Collection на пакета java.util, който от своя страна се простира от интерфейса Iterable на пакета java.util. Класът AbstractList осигурява скелетна реализация на интерфейса List.
Класовете LinkedList, Stack, Vector, ArrayList и CopyOnWriteArrayList са всички класове за изпълнение на списъчния интерфейс, които често се използват от програмистите. По този начин има четири типа списъци в Java, т.е. Stack, LinkedList, ArrayList и Vector.
Следователно, когато трябва да внедрите списъчен интерфейс, можете да внедрите всеки от горния клас тип списък в зависимост от изискванията. За да включите функционалността на списъчния интерфейс във вашата програма, ще трябва импортирайте пакета java.util. *, който съдържа списъчен интерфейс и други дефиниции на класове, както следва:
import java.util.*;
Създаване и деклариране на списък
Вече заявихме, че List е интерфейс и се прилага от класове като ArrayList, Stack, Vector и LinkedList. Следователно можете декларира и създава екземпляри от списъка по някой от следните начини:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Както е показано по-горе, можете да създадете списък с някой от горните класове и след това да ги инициализирате със стойности. От горните изявления можете да разберете, че редът на елементите ще се промени в зависимост от класа, използван за създаване на екземпляр на списъка.
Например, за списък с клас на стека поръчката е Last In, First Out (LIFO).
Инициализирайте списъка на Java
Можете да използвате всеки от методите, дадени по-долу, за да инициализирате обект от списък.
# 1) Използване на метода asList
Методът asList () вече е подробно разгледан в темата за масиви. Можете да създадете неизменим списък, като използвате стойностите на масива.
Общият синтаксис е:
List listname = Arrays.asList(array_name);
Тук data_type трябва да съвпада с този на масива.
Горното изявление създава неизменим списък. Ако искате списъкът да бъде променлив, трябва да създадете екземпляр на списъка, като използвате new и след това да му присвоите елементите на масива, използвайки метода asList.
Това е показано по-долу:
List listname = new ArrayList (Arrays.asList(array_name));
Нека да внедри програма в Java, която показва създаването и инициализирането на списъка с помощта на метода asList .
въпроси за интервю за програмиране от страна на сървъра на Java
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
Изход:
В горната програма създадохме първо неизменния списък, използвайки метода asList. След това създаваме изменяем списък, като създаваме екземпляр на ArrayList и след това инициализираме този ArrayList със стойности от масива, използвайки метода asList.
Имайте предвид, че тъй като вторият списък е променлив, можем да добавим и повече стойности към него.
# 2) Използване на List.add ()
Както вече споменахме, тъй като списъкът е само интерфейс, той не може да бъде създаден. Но можем да създадем екземпляри за класове, които изпълняват този интерфейс. Следователно, за да инициализирате списъчните класове, можете да използвате съответните им методи за добавяне, който е метод на интерфейс на списъка, но е реализиран от всеки от класовете.
Ако ти създайте екземпляр на свързан клас списък, както по-долу:
List llist = new LinkedList ();
След това, за да добавите елемент към списък, можете да използвате метода за добавяне, както следва:
llist.add(3);
Съществува и техника, наречена „Двойна скоба инициализация“, при която списъкът се създава и инициализира чрез извикване на метода add в същия израз.
Това се прави, както е показано по-долу:
List llist = new LinkedList (){{ add(1); add(3);}};
Горното изявление добавя елементите 1 и 3 към списъка.
Следващата програма показва инициализации на списъка с помощта на метода add . Той също така използва техниката за инициализиране на двойна скоба.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
Изход:
Тази програма има три различни декларации на списъка, т.е. ArrayList, LinkedList и Stack.
Инстанират се обектите ArrayList и LinkedList и след това се извикват методите за добавяне, за да се добавят елементи към тези обекти. За стека се използва инициализация с двойна скоба, при която методът add се извиква по време на самата инстанция.
# 3) Използване на методи за колекции в клас
Класът колекции на Java има различни методи, които могат да се използват за инициализиране на списъка.
Някои от методите са:
- добави Всички
The общ синтаксис за колекции метод addAll е:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Тук добавяте стойности към празен списък. Методът addAll взема списъка като първи параметър, последван от стойностите, които трябва да бъдат вмъкнати в списъка.
- unmodifiableList ()
Методът ‘unmodifiableList ()’ връща неизменим списък, към който елементите не могат да се добавят или изтриват.
Общият синтаксис на този метод е следният:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Методът взема стойности на списъка като параметри и връща списък. Ако изобщо се опитате да добавите или изтриете някой елемент от този списък, тогава компилаторът изхвърля изключение UnsupportedOperationException.
- singletonList ()
Методът ‘singletonList’ връща списък с един елемент в него. Списъкът е неизменен.
Общият синтаксис за този метод е:
List listname = Collections.singletonList(value);
Следващата програма Java демонстрира всичките три метода от класа Collections обсъдени по-горе.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
Изход:
# 4) Използване на Java8 потоци
С въвеждането на потоци в Java 8 можете също да изградите поток от данни и да ги събирате в списък.
Следното програмата показва създаването на списък с помощта на поток.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
Изход:
Горната програма събира потока от низ в списък и го връща. Можете също да използвате другите методи за събиране, като ‘toCollection’, ‘unmodifiableList’ и др., Освен asList във функцията събиране.
# 5) Java 9 List.of () Метод
Въведен е нов метод в Java 9, List.of (), който взема произволен брой елементи и изгражда списък. Изграденият списък е неизменим.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
Изход:
Пример за списък
По-долу е даден пълен пример за използване на списъчен интерфейс и различните му методи.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
Изход:
Горният изход на програмата показва различните операции, извършени върху ArrayList. Първо, той създава и инициализира списъка. След това копира съдържанието на друг списък в този списък и също така премахва елемент от списъка. И накрая, той замества последния елемент в списъка с друга стойност.
Ще разгледаме подробно методите на списъка в следващия урок.
Списък за печат
Съществуват различни методи, чрез които можете да отпечатате елементите от списъка в Java.
Нека обсъдим някои от методите тук.
# 1) Използване за Loop / Enhanced For Loop
Списъкът е подредена колекция, която може да бъде достъпна с помощта на индекси. Можете да използвате за цикъл, който се използва за итерация, използвайки индексите, за да отпечатате всеки елемент от списъка.
Java има друга версия на цикъл for, познат като подобрен за цикъл, който също може да се използва за достъп и отпечатване на всеки елемент от списъка.
Показаната по-долу програма Java показва отпечатването на съдържанието на списъка с помощта на цикъл и подобрено за цикъл.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i Изход:

# 2) Използване на метода toString
Методът ‘toString ()’ на интерфейса на списъка връща низовото представяне на списъка.
c ++ дървовидна структура на данните
Програмата по-долу демонстрира използването на метода toString ().
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
Изход:

Списък, преобразуван в масив
Списъкът има метод toArray (), който преобразува списъка в масив. След като бъде преобразуван в масив, можете да използвате методите на масива, обсъдени в съответната тема, за да отпечатате съдържанието на този масив. Можете да използвате за или подобрен за цикъл или дори метод toString.
Примерът, даден по-долу използва метода toString за отпечатване на съдържанието на масива.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
Изход:

Използване на Java 8 Streams
Потоците са въведени в Java 8. Можете да се възползвате от потоци, за да преминете през списъка. Има и ламбда, с които можете да прегледате списъка.
Програмата по-долу показва използването на потоци за итерация през списъка и показване на съдържанието му.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
Изход:

Освен методите, обсъдени по-горе, можете да използвате итератори на списъци, за да прегледате списъка и да покажете съдържанието му. Ще имаме пълна статия за итератора на списъка в следващите уроци.
Списък на списъците
Интерфейсът на списъка Java поддържа „списък със списъци“. При това отделните елементи от списъка отново са списък. Това означава, че можете да имате списък в друг списък.
Тази концепция е много полезна, когато трябва да четете данни от да кажем CSV файлове. Тук може да се наложи да прочетете множество списъци или списъци в тях и след това да ги съхраните в паметта. Отново ще трябва да обработите тези данни и да запишете обратно във файла. По този начин в такива ситуации можете да поддържате списък със списъци, за да опростите обработката на данните.
Следващата Java програма демонстрира пример за списък със списъци на Java.
В тази програма имаме списък със списъци от тип String. Създаваме два отделни списъка от тип string и присвояваме стойности на тези списъци. И двата списъка се добавят към списъка с помощта на метода add.
За да покажем съдържанието на списъка със списъци, използваме два цикъла. Външният цикъл (foreach) прелиства списъците със списъци, които имат достъп до списъците. Вътрешният цикъл foreach има достъп до отделните низови елементи на всеки от тези списъци.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
Изход:

Списъкът със списъци на Java е малка концепция, но е важен, особено когато трябва да четете сложни данни във вашата програма.
често задавани въпроси
В # 1) Какво представлява списък и набор в Java?
Отговор: Списъкът е подредена колекция от елементи. Можете да имате дублиращи се елементи в списъка.
Комплектът не е подредена колекция. Елементите в комплекта не са подредени в определен ред. Също така, елементите в комплекта трябва да бъдат уникални. Не позволява дублирания.
В # 2) Как работи списъкът в Java?
Отговор: Списъкът е интерфейс в Java, който се простира от интерфейса на Collection. Класовете ArrayList, LinkedList, Stack и Vector изпълняват списъчния интерфейс. По този начин програмист може да използва тези класове, за да използва функционалността на списъчния интерфейс.
В # 3) Какво представлява ArrayList в Java?
Отговор: ArrayList е динамичен масив. Това е променяща се колекция от елементи и реализира интерфейса на списъка. ArrayList вътрешно използва масив за съхраняване на елементите.
В # 4) Списъците започват ли от 0 или 1 в Java?
Отговор: Списъците в Java имат нулев индекс на цяло число. Това означава, че първият елемент в списъка е с индекс 0, вторият елемент с индекс 1 и т.н.
В # 5) Подреден ли е списъкът?
Отговор: Да. Списъкът е подредена колекция от елементи. Този ред се запазва по време на вмъкването на нов елемент в списъка,
Заключение
Този урок даде въведение в списъчния интерфейс в Java. Също така обсъдихме основните концепции на списъците като създаване, инициализиране на списъци, отпечатване на списъци и др.
В предстоящите ни уроци ще обсъдим различните методи, предоставени от интерфейса на списъка. Също така ще обсъдим конструкцията на итератор, която се използва за итерация на обекта на списъка. Ще обсъдим преобразуването на обекти от списък в други структури от данни в нашия предстоящ урок.
=> Посетете тук, за да видите серията за обучение за Java за всички.
Препоръчително четене
- Java Array - Декларирайте, създайте и инициализирайте масив в Java
- Масив от обекти в Java: Как да създавате, инициализирате и използвате
- Java Hello World - Създайте първата си програма в Java днес
- Разполагане на Java: Създаване и изпълнение на Java JAR файл
- Java виртуална машина: Как JVM помага при стартирането на Java приложение
- Модификатори на достъп в Java - Урок с примери
- Урок за отражение на Java с примери
- Въведение в езика за програмиране на Java - видео урок