logo

Списък на Java

списък в Java предоставя възможност за поддържане на поръчана колекция . Той съдържа базирани на индекс методи за вмъкване, актуализиране, изтриване и търсене на елементи. Може да има и дублирани елементи. Можем също да съхраняваме нулевите елементи в списъка.

Интерфейсът List се намира вjava.utilпакет и наследява интерфейса на колекцията. Това е фабрика на интерфейса ListIterator. Чрез ListIterator можем да итерираме списъка в посоки напред и назад. Класовете за изпълнение на интерфейса List саArrayList,LinkedList, стек и вектор. ArrayList и LinkedList се използват широко в програмирането на Java. Класът Vector е отхвърлен от Java 5.

Декларация на списък интерфейс

 public interface List extends Collection 

Списъчни методи на Java

Метод Описание
void add(int индекс, E елемент) Използва се за вмъкване на посочения елемент на посочената позиция в списък.
булево добавяне (E e) Използва се за добавяне на посочения елемент в края на списък.
булево addAll(Колекция c) Използва се за добавяне на всички елементи в указаната колекция в края на списък.
boolean addAll(int index, Collection c) Използва се за добавяне на всички елементи в посочената колекция, започвайки от посочената позиция в списъка.
void clear() Използва се за премахване на всички елементи от този списък.
булево равно (обект o) Използва се за сравняване на посочения обект с елементите на списък.
int hashcode() Използва се за връщане на стойността на хеш кода за списък.
E get(int индекс) Използва се за извличане на елемента от определена позиция в списъка.
булево isEmpty() Връща true, ако списъкът е празен, в противен случай false.
int lastIndexOf(Object o) Използва се за връщане на индекса в този списък на последното срещане на посочения елемент или -1, ако списъкът не съдържа този елемент.
Object[] toArray() Използва се за връщане на масив, съдържащ всички елементи в този списък в правилния ред.
T[] toArray(T[] a) Използва се за връщане на масив, съдържащ всички елементи в този списък в правилния ред.
boolean съдържа (обект o) Връща true, ако списъкът съдържа посочения елемент
boolean съдържа всички (Колекция c) Връща true, ако списъкът съдържа всички посочени елементи
int indexOf(Object o) Използва се за връщане на индекса в този списък на първото появяване на посочения елемент или -1, ако списъкът не съдържа този елемент.
E премахване (int индекс) Използва се за премахване на елемента, присъстващ на посочената позиция в списъка.
булево премахване (обект o) Използва се за премахване на първото появяване на посочения елемент.
boolean removeAll(Колекция c) Използва се за премахване на всички елементи от списъка.
void replaceAll(Оператор UnaryOperator) Използва се за замяна на всички елементи от списъка с посочения елемент.
void retainAll(Колекция c) Използва се за запазване на всички елементи в списъка, които присъстват в указаната колекция.
E набор (int индекс, E елемент) Използва се за заместване на посочения елемент в списъка, присъстващ на посочената позиция.
празно сортиране (компаратор c) Използва се за сортиране на елементите от списъка на базата на зададен компаратор.
Spliterator spliterator() Използва се за създаване на сплитератор върху елементите в списък.
Подсписък на списъка (int fromIndex, int toIndex) Използва се за извличане на всички елементи в дадения диапазон.
int size() Използва се за връщане на броя елементи, присъстващи в списъка.

Java List срещу ArrayList

List е интерфейс, докато ArrayList е класът за изпълнение на List.

Как да създадете списък

Класовете ArrayList и LinkedList осигуряват внедряването на интерфейс List. Нека да видим примерите за създаване на списъка:

 //Creating a List of type String using ArrayList List list=new ArrayList(); //Creating a List of type Integer using ArrayList List list=new ArrayList(); //Creating a List of type Book using ArrayList List list=new ArrayList(); //Creating a List of type String using LinkedList List list=new LinkedList(); 

Накратко, можете да създадете списък от всякакъв тип. Класовете ArrayList и LinkedList се използват за указване на типа. Тук T обозначава типа.

Пример за списък на Java

Нека да видим прост пример за List, където използваме класа ArrayList като имплементация.

 import java.util.*; public class ListExample1{ public static void main(String args[]){ //Creating a List List list=new ArrayList(); //Adding elements in the List list.add('Mango'); list.add('Apple'); list.add('Banana'); list.add('Grapes'); //Iterating the List element using for-each loop for(String fruit:list) System.out.println(fruit); } } 
Тествайте сега

Изход:

 Mango Apple Banana Grapes 

Как да конвертирате масив в списък

Можем да конвертираме масива в списък, като обхождаме масива и добавяме елемента в списъка един по един, като използваме метода list.add(). Нека видим прост пример за преобразуване на елементи от масив в списък.

 import java.util.*; public class ArrayToListExample{ public static void main(String args[]){ //Creating Array String[] array={'Java','Python','PHP','C++'}; System.out.println('Printing Array: '+Arrays.toString(array)); //Converting Array to List List list=new ArrayList(); for(String lang:array){ list.add(lang); } System.out.println('Printing List: '+list); } } 
Тествайте сега

Изход:

 Printing Array: [Java, Python, PHP, C++] Printing List: [Java, Python, PHP, C++] 

Как да конвертирате List в Array

Можем да преобразуваме списъка в масив, като извикаме метода list.toArray(). Нека видим прост пример за преобразуване на елементи от списък в масив.

alter добави колона oracle
 import java.util.*; public class ListToArrayExample{ public static void main(String args[]){ List fruitList = new ArrayList(); fruitList.add('Mango'); fruitList.add('Banana'); fruitList.add('Apple'); fruitList.add('Strawberry'); //Converting ArrayList to Array String[] array = fruitList.toArray(new String[fruitList.size()]); System.out.println('Printing Array: '+Arrays.toString(array)); System.out.println('Printing List: '+fruitList); } } 
Тествайте сега

Изход:

 Printing Array: [Mango, Banana, Apple, Strawberry] Printing List: [Mango, Banana, Apple, Strawberry] 

Вземете и задайте елемент в списъка

The get() метод връща елемента на дадения индекс, докато метод set(). променя или заменя елемента.

 import java.util.*; public class ListExample2{ public static void main(String args[]){ //Creating a List List list=new ArrayList(); //Adding elements in the List list.add('Mango'); list.add('Apple'); list.add('Banana'); list.add('Grapes'); //accessing the element System.out.println('Returning element: '+list.get(1));//it will return the 2nd element, because index starts from 0 //changing the element list.set(1,'Dates'); //Iterating the List element using for-each loop for(String fruit:list) System.out.println(fruit); } } 
Тествайте сега

Изход:

 Returning element: Apple Mango Dates Banana Grapes 

Как да сортирате списък

Има различни начини за сортиране на списъка, тук ще използваме метода Collections.sort() за сортиране на елемента от списъка. The java.util пакетът предоставя полезен клас Колекции който има статичния метод sort(). Използвайки Collections.sort() метод, можем лесно да сортираме всеки списък.

 import java.util.*; class SortArrayList{ public static void main(String args[]){ //Creating a list of fruits List list1=new ArrayList(); list1.add('Mango'); list1.add('Apple'); list1.add('Banana'); list1.add('Grapes'); //Sorting the list Collections.sort(list1); //Traversing list through the for-each loop for(String fruit:list1) System.out.println(fruit); System.out.println('Sorting numbers...'); //Creating a list of numbers List list2=new ArrayList(); list2.add(21); list2.add(11); list2.add(51); list2.add(1); //Sorting the list Collections.sort(list2); //Traversing list through the for-each loop for(Integer number:list2) System.out.println(number); } } 

Изход:

 Apple Banana Grapes Mango Sorting numbers... 1 11 21 51 

Java ListIterator интерфейс

Интерфейсът ListIterator се използва за преминаване на елемента в посока назад и напред.

преки пътища за linux

Декларация на интерфейса ListIterator

 public interface ListIterator extends Iterator 

Методи на интерфейса на Java ListIterator:

Метод Описание
празно добавяне (E e) Този метод вмъква посочения елемент в списъка.
булев hasNext() Този метод връща true, ако итераторът на списъка има повече елементи, докато обхожда списъка в посока напред.
E следващ() Този метод връща следващия елемент в списъка и придвижва напред позицията на курсора.
int nextIndex() Този метод връща индекса на елемента, който би бил върнат от последващо извикване на next()
boolean hasPrevious() Този метод връща true, ако този итератор на списък има повече елементи, докато обхожда списъка в обратна посока.
E предишен() Този метод връща предишния елемент в списъка и премества позицията на курсора назад.
E предишен индекс() Този метод връща индекса на елемента, който би бил върнат от последващо извикване на previous().
void премахване () Този метод премахва последния елемент от списъка, върнат от методите next() или previous().
празен набор (E e) Този метод замества последния елемент, върнат от методите next() или previous() с посочения елемент.

Пример за интерфейс на ListIterator

 import java.util.*; public class ListIteratorExample1{ public static void main(String args[]){ List al=new ArrayList(); al.add('Amit'); al.add('Vijay'); al.add('Kumar'); al.add(1,'Sachin'); ListIterator itr=al.listIterator(); System.out.println('Traversing elements in forward direction'); while(itr.hasNext()){ System.out.println('index:'+itr.nextIndex()+' value:'+itr.next()); } System.out.println('Traversing elements in backward direction'); while(itr.hasPrevious()){ System.out.println('index:'+itr.previousIndex()+' value:'+itr.previous()); } } } 

Изход:

 Traversing elements in forward direction index:0 value:Amit index:1 value:Sachin index:2 value:Vijay index:3 value:Kumar Traversing elements in backward direction index:3 value:Kumar index:2 value:Vijay index:1 value:Sachin index:0 value:Amit 

Пример за списък: Книга

Нека да видим пример за списък, където добавяме книгите.

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ListExample5 { public static void main(String[] args) { //Creating list of Books List list=new ArrayList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications and Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 
Тествайте сега

Изход:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications and Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6 

Свързани теми

ArrayList в Java

LinkedList в Java

Разлика между ArrayList и LinkedList

Разлика между Array и ArrayList

Кога да използвате ArrayList и LinkedList в Java

Разлика между ArrayList и Vector

Как да сравните два ArrayList в Java

Как да обърнете ArrayList в Java

Кога да използвате ArrayList и LinkedList в Java

Как да направите ArrayList само за четене

regex java

Разлика между дължината на масива и size() на ArrayList в Java

Как да синхронизирате ArrayList в Java

Как да конвертирате ArrayList в Array и Array в ArrayList в java

Array срещу ArrayList в Java

Как да сортирате Java ArrayList в низходящ ред

Как да премахнете дубликати от ArrayList в Java