java list methods sort list
Aquest tutorial explica diversos mètodes de llista de Java, com ara Llista d'ordenació, Llista conté, Afegeix llista, Elimina llista, Mida llista, Afegeix tot, Elimina tot, Inverteix la llista i més:
Ja hem parlat de la interfície de la llista en general al nostre tutorial anterior. La interfície de llista té diversos mètodes que s’utilitzen per manipular el contingut de la llista. Mitjançant aquests mètodes podeu inserir / eliminar, ordenar i cercar elements a la llista.
En aquest tutorial, parlarem de tots els mètodes que proporciona la interfície de la llista.
=> Consulteu aquí per veure aquí A-Z de tutorials de formació.
Per recórrer la llista, la interfície de la llista fa ús de l'iterador de la llista. Aquest iterador de llista s'estén des de la interfície d'iterador. Al nostre següent tutorial, explorarem més informació sobre l'iterador de llistes.
Què aprendreu:
- Llista de mètodes a Java
- Elimineu els duplicats d'una llista de Java
- Preguntes freqüents
- Conclusió
- Lectura recomanada
Llista de mètodes a Java
La taula següent mostra diverses funcions proporcionades per la interfície de llista a Java.
Mètode de llista | Mètode prototip | Descripció |
---|---|---|
conté | booleà conté (Objecte o) | Comprova si l'element especificat és present a la llista i retorna cert si és present |
mida | int size () | Retorna la mida de la llista, és a dir, el nombre d'elements de la llista o la longitud de la llista. |
clar | void clear () | Esborra la llista eliminant tots els elements de la llista |
afegir | void add (índex int, element objecte) | Afegeix l'element donat a la llista de l'índex donat |
addició booleana (objecte o) | Afegeix l'element donat al final de la llista | |
addAll | addAll booleà (col·lecció c) | Afegeix tota la col·lecció donada al final de la llista |
addAll booleà (índex int, col·lecció c) | Insereix la col·lecció donada (tots els elements) a la llista a l'índex especificat | |
conté Tot | booleà conté Tot (Col·lecció c) | Comprova si la col·lecció especificada (tots els elements) forma part de la llista. Retorna cert de sí. |
és igual | booleà és igual (objecte o) | Compara l'objecte especificat per a la igualtat amb els elements de la llista |
Aconseguir | Obtenció d'objectes (índex int) | Retorna l'element de la llista especificat per índex |
hashCode | int hashCode () | Retorna el valor del codi hash de la llista. |
indexOf` | int indexOf (objecte o) | Cerca la primera aparició de l’element d’entrada i retorna el seu índex |
està buit | boolean isEmpty () | Comprova si la llista està buida |
lastIndexOf | int lastIndexOf (objecte o) | Cerca l'última aparició de l'element d'entrada a la llista i retorna el seu índex |
eliminar | Eliminació d'objectes (índex int) | Elimina l'element de l'índex especificat |
eliminar booleà (objecte o) | Elimina l'element en la seva primera aparició a la llista | |
esborra-ho tot | booleà removeAll (Col·lecció c) | Elimina de la llista tots els elements inclosos a la col·lecció especificada |
retainAll | boolean retainAll (Col·lecció c) | Contrari a removeAll. Conserva l'element especificat a la col·lecció d'entrada de la llista. |
Conjunt | Conjunt d'objectes (índex int, element d'objecte) | Canvia l'element de l'índex especificat establint-lo al valor especificat |
subLista | Llista sublista (int fromIndex, int toIndex) | Retorna la sublista d'elements entre fromIndex (inclòs) i toIndex (exclusiu). |
ordenar | void sort (Comparador c) | Ordena l'element de llista segons el comparador especificat per donar una llista ordenada |
toArray | Objecte () toArray () | Retorna la representació de matriu de la llista |
Objecte () toArray (Objecte () a) | Retorna la representació de matriu el tipus d'execució del qual és el mateix que un argument de matriu especificat | |
iterador | Iterador iterador () | Retorna un iterador per a la llista |
listIterator | ListIterator listIterator () | Retorna un ListIterator per a la llista |
ListIterator listIterator (int index) | Retorna un ListIterator que comença a l'índex especificat a la llista |
A continuació, discutirem aquestes funcions juntament amb els seus exemples.
mida
Prototip: int size ()
Paràmetres: NUL
Valor de retorn: int => Nombre d'elements de la llista o, en altres paraules, la longitud de la llista.
Descripció: La mida () retorna el nombre d'elements o la mida de la llista. També es pot anomenar longitud en termes simples.
clar
Prototip: void clear ()
Paràmetres: NUL
Valor de retorn: Sense valor de retorn
Descripció: Esborra la llista eliminant tots els elements de la llista. Llança 'UnSupportedException' si la llista no admet l'operació.
L'exemple següent mostrarà el mètode size () i clear ().
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list //add items to list strList.add('Java'); strList.add('C++'); //print the size of list System.out.println('Size of list:' + strList.size()); //add more items to list strList.add('Ruby'); strList.add('Python'); strList.add('C#'); //print the size of list again System.out.println('Size of list after adding more elements:' + strList.size()); //clear method strList.clear(); System.out.println('List after calling clear() method:' + strList); } }
Sortida:
afegir
Prototip: void add (índex int, element objecte)
Paràmetres: índex: una posició a la qual s'ha d'afegir l'element.
Element: l'element que s'ha d'afegir
Valor de retorn: buit
Descripció: Afegeix l'element donat a la llista de l'índex donat. Els elements posteriors es desplacen cap a la dreta.
Es produeixen les següents excepcions:
IndexOutOfBoundsException: L'índex de llista està fora de l'abast
UnsupportedOperationException: La llista no admet l'operació d'afegir.
ClassCastException: L'element no es pot afegir a la llista a causa de la classe d'elements especificats.
IllegalArgumentException: L'element especificat o algun aspecte no és correcte.
Afegeix
Prototip: addició booleana (objecte o)
Paràmetres: o => Element que cal afegir a la llista
Valor de retorn: true => Element afegit correctament
Fals => Afegeix sense èxit
Descripció: Aquest mètode afegeix l'element donat al final de la llista.
Aquesta operació pot generar les següents excepcions.
UnsupportedOperationException: Aquesta operació no admet l'operació d'afegir.
ClassCastException: L'element especificat no es pot afegir a causa de la seva classe
IllegalArgumentException: L'element especificat o algun aspecte no és correcte.
addAll
Prototip: addAll booleà (col·lecció c)
Paràmetres: c => Col·lecció els elements del qual s'han d'afegir a la llista
Valor de retorn: true => Execució del mètode amb èxit
Descripció: El mètode addAll pren tots els elements de la col·lecció c i els afegeix al final de la llista mantenint l'ordre establert.
Aquest mètode presenta un comportament no especificat si la col·lecció s’altera quan l’operació està en curs.
El mètode genera les següents excepcions:
UnsupportedOperationException: Aquesta operació no admet l'operació d'afegir.
ClassCastException: L'element especificat no es pot afegir a causa de la seva classe.
IllegalArgumentException: L'element especificat o algun aspecte no és correcte.
addAll
Prototip: addAll booleà (índex int, col·lecció c)
Paràmetres: índex => Posició on s'ha d'inserir la col·lecció.
C => Col·lecció que s'ha d'inserir a la llista.
Valor de retorn: true => Si els elements de la col·lecció s’afegeixen correctament a la llista.
Descripció: El mètode addAll insereix tots els elements de la col·lecció especificada a la llista a l'índex especificat. Els elements posteriors es desplacen cap a la dreta. Com en el cas de la sobrecàrrega anterior d'addAll, el comportament no s'especifica si la col·lecció s'altera quan l'operació està en curs.
Les excepcions generades per aquest mètode són:
UnsupportedOperationException: Aquesta operació no admet l'operació d'afegir.
ClassCastException: L'element especificat no es pot afegir a causa de la seva classe.
IllegalArgumentException: L'element especificat o algun aspecte no és correcte.
IndexOutOfBoundsException: Índex fora del rang.
El programa següent mostra la demostració dels mètodes add i addAll de la llista.
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list strList.add('Java'); strList.add('C++'); //print the list System.out.println('List after adding two elements:' + strList); List llist = new ArrayList(); // Create another list llist.add('Ruby'); llist.add('Python'); llist.add('C#'); // addAll method - add llist to strList strList.addAll(llist); System.out.println('List after addAll:'+ strList); } }
Sortida:
conté
Prototip: booleà conté (Objecte o)
Paràmetres: o => Element que cal cercar a la llista.
Valor de retorn: true => Si la llista conté l'element especificat.
Descripció: El mètode 'conté' comprova si l'element especificat és present a la llista i retorna un valor booleà cert si l'element és present. En cas contrari, torna fals.
conté Tot
Prototip: booleà conté Tot (Col·lecció c)
Paràmetres: c => Col·lecció que es cercarà a la llista.
Valor de retorn: true => Si tots els elements de la col·lecció especificada són presents a la llista.
Descripció: El mètode 'containsAll' comprova si tots els elements presents a la col·lecció especificada estan presents a la llista. Si és present, torna un valor vertader i fals en cas contrari.
El següent programa Java mostra l’ús dels mètodes ‘conté’ i ‘contéTots’ de la llista.
import java.util.*; public class Main { public static void main(String() args) { //define list of strings List list = new ArrayList(); //initialize list to strings list.add('Java'); list.add('Xml'); list.add('Python'); list.add('Ruby'); list.add('JavaScript'); //contains method demo if(list.contains('C')==true) System.out.println('Given list contains string 'C''); else if(list.contains('Java')==true) System.out.println('Given list contains string 'Java' but not string 'C''); //containsAll method demo List myList = new ArrayList(); myList.add('Ruby'); myList.add('Python'); if(list.containsAll(myList)==true) System.out.println('List contains strings 'Ruby' and 'Python''); } }
Sortida:
La llista indicada conté la cadena 'Java' però no la cadena 'C'
La llista conté les cadenes 'Ruby' i 'Python'
és igual
Prototip: booleà és igual (objecte o)
Paràmetres: o => L'objecte que s'ha de provar per a la igualtat.
Valor de retorn: true => Si l'objecte donat és igual a la llista.
Descripció: Aquest mètode s’utilitza per comparar l’objecte donat amb la llista d’igualtat. Si l'objecte especificat és una llista, el mètode torna cert. Es diu que totes dues llistes són iguals si i només si tenen la mateixa mida i els elements corresponents de les dues llistes són iguals i en el mateix ordre.
A continuació es mostra una demostració del mètode igual:
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String() args) { //define lists List first_list= new LinkedList(); List second_list = new LinkedList(); List third_list = new LinkedList(); //initialize lists with values for (int i=0;i<11;i++){ first_list.add(i); second_list.add(i); third_list.add(i*i); } //print each list System.out.println('First list: ' + first_list); System.out.println('Second list: ' + second_list); System.out.println('Third list: ' + third_list); //use equals method to check equality with each list to other if (first_list.equals(second_list) == true) System.out.println('
first_list and second_list are equal.
'); else System.out.println('first_list and second_list are not equal.
'); if(first_list.equals(third_list)) System.out.println('first_list and third_list are equal.
'); else System.out.println('first_list and third_list are not equal.
'); if(second_list.equals(third_list)) System.out.println('second_list and third_list are equal.
'); else System.out.println('second_list and third_list are not equal.
'); } }
Sortida:
Preguntes i respostes de l'entrevista de desenvolupadors .net
Aconseguir
Prototip: Obtenció d'objectes (índex int)
Paràmetres: índex => Posició en què s'ha de retornar l'element.
Valor de retorn: object => Element a la posició especificada.
Descripció: El mètode get () retorna l'element a la posició donada.
Aquest mètode llança 'indexOutOfBoundsException' si l'índex especificat està fora del rang de la llista.
Conjunt
Prototip: Conjunt d'objectes (índex int, element d'objecte)
Paràmetres: índex => Posició en què s’ha d’establir el nou element.
element => Nou element que es col·locarà a la posició indicada per l'índex.
Valor de retorn: Objecte => Element que s'ha substituït
Descripció: El mètode set () substitueix l'element de l'índex donat per un altre valor donat per l'element.
El mètode pot comportar les següents excepcions:
UnsupportedOperationException: La llista no admet l'operació de configuració.
ClassCastException: L'operació no es pot realitzar a causa de la classe de l'element
IllegalArgumentException: L’argument o algun aspecte és il·legal
IndexOutOfBoundsException: Índex fora del rang.
El programa següent mostra un exemple del mètode get () i set ().
import java.util.*; public class Main { public static void main(String() args) { //define list List listA = new ArrayList(); listA.add('Java'); listA.add('C++'); listA.add('Python'); //access list elements using index with get () method System.out.println('Element at index 0:' + listA.get(0)); System.out.println('Element at index 1:' + listA.get(1)); System.out.println('Element at index 2:' + listA.get(2)); //set element at index 1 to Ruby listA.set(1,'Ruby'); System.out.println('Element at index 1 changed to :' + listA.get(1) ); } }
Sortida:
hashCode
Prototip: int hashCode ()
Paràmetres: NUL
Valor de retorn: int => hashCode de la llista
Descripció: El mètode ‘hashCode ()’ retorna el hashCode de la llista, que és un valor enter.
Exemple:
import java.util.*; public class Main { public static void main(String() args) { // Initializing a list of type Linkedlist List mylist = new LinkedList(); mylist.add(1); mylist.add(3); mylist.add(5); mylist.add(7); //print the list System.out.println('The list:' + mylist); //use hashCode() method to find hashcode of list int hash = mylist.hashCode(); System.out.println('Hashcode for list:' + hash); } }
Sortida:
està buit
Prototip: boolean isEmpty ()
Paràmetres: NUL
Valor de retorn: true => La llista està buida
Descripció: El mètode ‘isEmpty ()’ comprova si la llista està buida. El mètode IsEmpty s'utilitza per comprovar si la llista conté elements abans de començar a processar aquests elements.
índex de
Prototip: int indexOf (objecte o)
Paràmetres: o => element que cal cercar a la llista
Valor de retorn: int => l'índex o la posició de la primera aparició de l'element donat a la llista. Retorna -1 si l'element no està present.
Descripció: El mètode ‘indexOf ()’ retorna l’índex de la primera aparició de l’element o donat a la llista. Si no es troba l'element, torna -1.
lastIndexOf
Prototip: int lastIndexOf (objecte o)
Paràmetres: o => Objecte l'índex del qual s'ha de cercar
Valor de retorn: int => Índex de l'última aparició de l'element donat a la llista, -1 en cas contrari.
Descripció: El mètode ‘lastIndexOf ()’ retorna l’índex de la darrera aparició de l’element o de la llista. Si no es troba l'element, el mètode retorna -1.
El programa Java següent mostra l'ús dels mètodes indexOf i lastIndexOf de la llista.
import java.util.*; public class Main { public static void main(String() args) { // define an integer array List intList = new ArrayList(5); //add elements to the list intList.add(10); intList.add(20); intList.add(30); intList.add(10); intList.add(20); //print the list System.out.println('The list of integers:' + intList); // Use indexOf() and lastIndexOf() methods of list to find first and last index System.out.println('first index of 20:' + intList.indexOf(20)); System.out.println('last index of 10:' + intList.lastIndexOf(10)); } }
Sortida:
eliminar
Prototip: Eliminació d'objectes (índex int)
Paràmetres: índex => Índex o posició de la llista en què s’ha d’eliminar l’element
Valor de retorn: Objecte => Element eliminat
Descripció: El mètode ‘remove ()’ elimina de la llista l’element a la posició indicada. Després de la supressió, els elements situats al costat de l'element suprimit es desplacen cap a l'esquerra.
Aquest mètode pot comportar les següents excepcions:
UnsupportedOperationException: La llista no admet l'eliminació.
IndexOutOfBoundsException: L'índex especificat està fora de l'abast
eliminar
Prototip: eliminar booleà (objecte o)
Paràmetres: o => Element que s'ha de suprimir de la llista
Valor de retorn: true => L'element s'ha suprimit correctament.
Descripció: Aquesta versió sobrecarregada del mètode remove () elimina la primera ocurrència d'un determinat element o de la llista. Si l’element donat no és present a la llista, es mantindrà sense canvis.
Aquest mètode pot generar la següent excepció:
UnsupportedOperationException: La llista no admet l'eliminació.
esborra-ho tot
Prototip: booleà removeAll (Col·lecció c)
Paràmetres: c => Una col·lecció que conté elements que s’eliminen de la llista.
Valor de retorn: true => Si la crida al mètode té èxit i tots els elements especificats a la col·lecció c s'eliminen de la llista.
Descripció: El mètode ‘removeAll ()’ s’utilitza per eliminar tots els elements de la llista que s’especifiquen a la col·lecció c que es passa com a argument.
Aquest mètode pot generar la següent excepció:
UnsupportedOperationException: removeAll no és compatible amb la llista.
Vegem un exemple de mètodes remove i removeAll.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); // Removes element from index 1 oddList.remove(1); System.out.println('Oddlist after removing element at index 1:' + oddList); //removeAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.removeAll(c1); System.out.println('Oddlist after removing elements {1,5,11}}:' + oddList); } }
Sortida:
retainAll
Prototip: boolean retainAll (Col·lecció c)
Paràmetres: c => Col·lecció que conté elements que s'han de conservar a la llista.
Valor de retorn: true => Si el mètode de trucada ha canviat la llista.
Descripció: Aquest mètode elimina tots els elements de la llista, excepte els que estan presents a la col·lecció c. En altres paraules, aquest mètode conserva tots els elements de la llista que estan presents a la col·lecció c i elimina els altres elements.
Aquest mètode pot generar la següent excepció:
UnsupportedOperationException: La llista no admet retainAll.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); //retainAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.retainAll(c1); System.out.println('Oddlist after call to retainAll (1,5,11):' + oddList); } }
Sortida:
subLista
Prototip: Llista sublista (int fromIndex, int toIndex)
Paràmetres: fromIndex => Índex inferior de la llista (inclòs)
toIndex => Índex més alt de la llista (exclusiu)
Valor de retorn: Llista => Una sub-llista de la llista donada
Descripció: El mètode sublist () retorna la vista parcial de la llista, també coneguda com a sublist de 'fromIndex' a 'toIndex'. La sublista retornada només és una vista de la llista principal i, per tant, els canvis que es facin a qualsevol llista es reflecteixen a tot arreu.
De la mateixa manera, totes les operacions de la llista també funcionen en una sublista.
El mètode pot generar la següent excepció:
IndexOutOfBoundsException: Valor il·legal fins a índex.
A continuació es mostra un exemple de programa per al mètode de la sublista.
import java.util.*; public class Main { public static void main(String() args) { // define a string list List strList = new ArrayList(5); //add elements to the list strList.add('Java'); strList.add('Tutorials'); strList.add('Collection'); strList.add('Framework'); strList.add('Series'); //print the original list System.out.println('The original list=>strList: ' + strList); //define another list List subList = new ArrayList(); // take a sublist of elements from 2 to 4 from strList subList = strList.subList(2, 4); //print the sublist System.out.println('The sublist of strList:' + subList); } }
Sortida:
llista de classificació
Prototip: void sort (Comparador c)
Paràmetres: c => Comparador sobre la base del qual s’ordena la llista.
Valor de retorn: NUL
Descripció: S’utilitza el mètode ‘sort ()’ per ordenar la llista. El mètode fa ús del comparador especificat per ordenar la llista.
Vegem un exemple del mètode de classificació . L’hem comparat amb el mètode Collections.sort que ordena els elements en una seqüència natural. La sortida del programa és una llista ordenada.
import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String() args) { //define list List intArray = new ArrayList(); Random random = new Random(); //populate the list with random numbers <20 for (int i = 0; i {return (o2-o1);}); //comparator to sort in reverse System.out.println('Reverse List sorted using comparator:
'+intArray); } }
Sortida:
toArray
Prototip: Objecte () toArray ()
Paràmetres: NUL
Valor de retorn: Objecte () => Representació de matriu de la llista
Descripció: El mètode toArray () retorna la representació de matriu de la llista en una seqüència adequada.
toArray
Prototip: Objecte () toArray (Objecte () a)
Paràmetres: a => Tipus de matriu que s'ha de fer coincidir amb els tipus d'elements de llista mentre es converteix la llista en una matriu.
Valor de retorn: Objecte () => Representació de matriu de la llista.
Descripció: Aquesta sobrecàrrega del mètode toArray () retorna la matriu que conté elements de la llista que tenen el mateix tipus d'execució que la matriu a.
Aquest mètode pot generar la següent excepció:
Excepció ArrayStore: El tipus d'execució de tots els elements de la llista no és un subtipus del tipus d'execució de tots els elements d'aquesta llista.
El següent és un exemple de la implementació del mètode toArray.
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('Size of the colorsList: ' + colorsList.size()); // Print the colors in the list System.out.println('Contents of colorsList:'); for (String value : colorsList){ System.out.print(value + ' '); } // Create an array from the list using toArray method String colorsArray() = new String(colorsList.size()); colorsArray = colorsList.toArray(colorsArray); // Display the contents of the array System.out.println('
Printing elements of colorsArray:' + Arrays.toString(colorsArray)); } }
Sortida:
Iterador
Prototip: Iterador iterador ()
Paràmetres: NUL
Valor de retorn: Iterador => Iterador per recórrer els elements de la llista
Descripció: Aquest mètode retorna l'iterador que itera sobre els elements de la llista.
Programa Java per demostrar mitjançant l'iterador.
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('ColorList using iterator:'); //define iterator for colorsList Iterator iterator = colorsList.iterator(); //iterate through colorsList using iterator and print each item while(iterator.hasNext()){ System.out.print(iterator.next() + ' '); } } }
Sortida:
listIterator
Prototip: ListIterator listIterator ()
Paràmetres: NUL
Valor de retorn: ListIterator => Listiterador dels elements de la llista.
Descripció: Mètode listIterator () retorna l'objecte ListIterator dels elements de la llista. Aquest iterador comença des del començament de la llista, és a dir, l’índex 0.
listIterator
Prototip: ListIterator listIterator (int index)
Paràmetres: índex => Posició en què comença listIterator.
Valor de retorn: ListIterator => Objecte ListIterator a l'índex especificat de la llista.
Descripció: La sobrecàrrega del mètode listIterator () retorna un listIterator que comença a la posició donada de la llista. L'índex indicat indica que serà el primer element que es retornarà mitjançant la primera crida al mètode nextElement () de ListIterator.
El mètode pot generar IndexOutOfBoundsException pel valor no vàlid de l’índex.
L'exemple següent mostra l'ús de listIterator.
import java.util.*; public class Main { public static void main(String() args) { //define list & add items to list List nameList = new LinkedList(); nameList.add('Java'); nameList.add('C++'); nameList.add('Python'); // get listIterator for the list ListIterator namesIterator = nameList.listIterator(); // Traverse list using listiterator and print each item System.out.println('Contents of list using listIterator:'); while(namesIterator.hasNext()){ System.out.print(namesIterator.next() + ' '); } } }
Sortida:
Més endavant parlarem detalladament de ListIterator.
Analitzem ara algunes de les operacions diverses que es poden fer a les llistes, però els mètodes que no es proporcionen a la interfície de la llista.
Copia la llista a Java
Per copiar elements d'una llista a una altra llista, heu d'utilitzar el mètode copy () proporcionat pel marc Collections.
El mètode Collections.copy () copia tots els elements de la llista proporcionats com a segon argument, a la llista proporcionada com a primer argument. Tingueu en compte que la llista a la qual s'està copiant el contingut d'una altra llista ha de ser prou gran com per contenir els elements copiats.
Si la llista no és prou gran, el mètode de còpia genera 'indexOutOfBoundsEexception'.
El programa següent copia el contingut d'una llista a una altra.
import java.util.*; public class Main { public static void main(String() args) { //create first ArrayList object List aList_1 = new ArrayList(); //Add elements to first ArrayList aList_1.add('R'); aList_1.add('G'); aList_1.add('B'); //print the List System.out.println('The first list:' + aList_1); //create second ArrayList object List aList_2 = new ArrayList(); //Add elements to second Arraylist aList_2.add('Red'); aList_2.add('Green'); aList_2.add('Blue'); aList_2.add('Yellow'); aList_2.add('Brown'); System.out.println('The second list: ' + aList_2); //use Collections.copy() method to copy elements of first list to second list. Collections.copy(aList_2,aList_1); //print the resultant second Arraylist System.out.println('
The second list after copying first list to second list: ' + aList_2); } }
Sortida:
Elimineu els duplicats d'una llista de Java
Una llista determinada pot tenir o no repetitius elements o duplicats. Si la llista amb què esteu treballant té elements duplicats i voleu tots els elements diferents de la llista, hi ha dos mètodes per eliminar els duplicats de la llista admesa a Java.
Utilitzant el flux de Java 8
El primer mètode per eliminar duplicats de la llista és utilitzar el mètode distinct () proporcionat pel flux Java 8. Aquí, la llista que conté duplicats invoca el mètode stream () .distinct i el valor de retorn es converteix en una nova llista que només tindrà els diferents elements.
El programa següent mostra l'ús del mètode distinct ().
import java.util.*; import java.util.stream.Collectors; class Main { public static void main(String() args) { // original list List intlist = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5,6,5,3,4)); // Print the list System.out.println('Original ArrayList: ' + intlist); // using distinct() method of Java 8 stream remove duplicates from original List //and generate a new list without duplicates List distinct_list = intlist.stream().distinct() .collect(Collectors.toList()); // Print the new list System.out.println('ArrayList after removing duplicates: ' + distinct_list); } }
Sortida:
Utilitzant l’enfocament Iterator
Eliminar els duplicats de la llista mitjançant l'iterador és un enfocament llarg i primitiu. En aquest enfocament, heu de recórrer la llista i posar la primera aparició de cada element en una llista nova. Es comprova cada element posterior si es tracta d’un duplicat.
El programa següent ho aconsegueix.
import java.util.*; public class Main { public static void main(String args()) { // create original list ArrayList aList = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 5, 3, 4)); // Print the original list System.out.println('Original List: '+ aList); // Create a new list ArrayList new_List = new ArrayList(); // Traverse through the original list to remove duplicates for (Integer element : aList) { // check if element is present in new_List, else add it if (!new_List.contains(element)) { new_List.add(element); } } // Print the new list without duplicates System.out.println('List after removing duplicates: '+ new_List); } }
Sortida:
Preguntes freqüents
P # 1) Què és el mètode get a la llista de Java?
Resposta: El mètode Get de la llista s'utilitza per recuperar un element concret de la llista basat en l'índex. Passeu l’índex requerit al mètode get i el mètode get retornarà el valor de l’element en aquest índex.
Q # 2) Quin és el mètode toArray a Java?
Resposta: El mètode toArray () s'utilitza per obtenir la representació de matriu de la llista.
P # 3) Com s'ordena una llista a Java?
Resposta: A Java, es pot ordenar una llista mitjançant el mètode de classificació de la llista. Podeu passar els vostres propis criteris d’ordenació mitjançant la interfície de comparació que es passa al mètode d’ordenació com a paràmetre.
També podeu utilitzar les col·leccions. Mètode d'ordenació per ordenar la llista. Aquest mètode ordena la llista segons l'ordenació natural.
Q # 4) Què és Arrays.asList () a Java?
Resposta: El mètode 'asList' de la matriu retorna la llista d'elements amb el suport d'una matriu.
Conclusió
En aquest tutorial, hem après tots els mètodes que proporciona una llista. La llista Java proporciona diversos mètodes amb els quals podeu manipular i processar llistes, incloent cerques, ordenacions, etc. Hem explicat cada mètode amb exemples de programació adequats aquí.
Al nostre proper tutorial, parlarem detalladament del ListIterator.
=> Exploreu aquí la sèrie d'entrenament de Java simple.
Lectura recomanada
- Llista Java: Com crear, inicialitzar i utilitzar una llista a Java
- Llista encoberta de matrius i altres col·leccions de Java
- Tutorial de llista avançada de Python (ordenació de llista, inversió, índex, còpia, unió, suma)
- Llista Python: creeu, accediu, trossegeu, afegiu o suprimiu elements
- Fils de Java amb mètodes i cicle de vida
- Eliminar / suprimir un element d'una matriu a Java
- Tutorial de cadenes de Java | Mètodes de cadena Java amb exemples
- Llista d'adreces IP del router per defecte per a les marques de router sense fils més habituals