arraylist methods java tutorial with example programs
En aquest tutorial, analitzarem els mètodes Java ArrayList com ara afegir, afegirTots, eliminar, eliminarTots, mida, conté, retenirTots, Ordenar, Invertir, etc. amb exemples:
En el tutorial anterior, vam explorar l'estructura de dades ArrayList i la classe ArrayList proporcionada per a aquesta estructura / col·lecció de dades a Java. Hem après la creació, inicialització, etc. dels objectes ArrayList.
A part d’aquestes funcions que ens ajuden a definir ArrayList, la classe ArrayList de Java també proporciona una API de funcions completa que consisteix en mètodes que s’utilitzen per manipular objectes ArrayList.
=> Consulteu TOTS els tutorials de Java aquí.
Aquests mètodes ens permeten afegir, suprimir, cercar elements a l'ArrayList, així com recuperar la longitud / mida dels elements d'ArrayList, etc.
En aquest tutorial, analitzarem aquests mètodes en detall amb exemples de programació senzills.
Què aprendreu:
- Mètodes ArrayList a Java
- Afegeix ArrayList
- ArrayList addAll
- ArrayList Afegeix al frontal
- Eliminar ArrayList
- ArrayList removeAll
- ArrayList removeRange
- Mida de la llista de matrius (longitud)
- ArrayList conté
- ArrayList obtenir
- Conjunt ArrayList (element de reemplaçament)
- ArrayList és clar
- ArrayList és buit
- ArrayList indexOf
- ArrayList lastIndexOf
- ArrayList a Array
- Clon ArrayList
- Llista secundària ArrayList
- ArrayList retainAll
- ArrayList Iterator
- ArrayList listIterator
- Afegiu matriu a ArrayList a Java
- Ordeneu ArrayList a Java
- Inverteix una llista de matrius a Java
- Elimineu els duplicats d'una llista de matrius a Java
- Reprodueix aleatòriament una llista de matrius a Java
- Preguntes freqüents
- Conclusió
Mètodes ArrayList a Java
La taula següent llista tots els mètodes que proporciona la classe ArrayList.
Mètode | Mètode prototip | Descripció del mètode |
---|---|---|
Conté | booleà conté (Objecte o) | Comprova si la llista conté l’element donat ‘o’. Retorna cert si l'element és present. |
Afegeix | addició booleana (E e) | Afegeix l’element donat e al final de la llista. |
void add (índex int, element E) | Afegeix un element determinat a la posició especificada 'índex'. | |
Afegeix-ho tot | addAll booleà (col·lecció c) | Afegeix tots els elements de la col·lecció donada c al final de la llista. |
addAll booleà (índex int, col·lecció c) | Afegeix tots els elements de la col·lecció donada c a la posició especificada per l’índex a la llista. | |
Clar | void clear () | Esborra la llista eliminant tots els elements de la llista. |
Clonar | Clon d'objectes () | Fa una còpia superficial de la llista ArrayList donada. |
assegurar la capacitat | nul garanteixCapacity (int minCapacity) | Augmenta la capacitat de l'ArrayList per assegurar-se que tingui la capacitat mínima. |
Aconseguir | E get (índex int) | Retorna l'element de la llista present a la posició especificada per 'índex'. |
índex de | int indexOf (objecte o) | Retorna l'índex de la primera aparició de l'element o de la llista. -1 si l'element o no està present a la llista. |
està buit | boolean isEmpty () | Comprova si la llista indicada està buida. |
Iterador | Iterador iterador () | Retorna un iterador per recórrer els elements de la llista en la seqüència adequada. |
lastIndexOf | int lastIndexOf (objecte o) | Retorna l'índex de l'última aparició de l'element o especificat a la llista. -1 si l'element no està present a la llista. |
listIterator | ListIterator listIterator () | Retorna l'iterador de la llista per recórrer els elements de la llista donada. |
ListIterator listIterator (int index) | Retorna l'iterador de la llista a partir de la posició 'índex' especificada per recórrer els elements de la llista donada. | |
eliminar | Elimina E (índex int) | Suprimeix l’element de l’índex de l’ArrayList. |
eliminar booleà (objecte o) | Suprimeix la primera aparició de l'element o de la llista. | |
esborra-ho tot | booleà removeAll (Col·lecció c) | Elimina tots els elements de la llista que coincideixen amb els elements de la col·lecció donada c. |
removeRange | buit protegit removeRange (int fromIndex, int toIndex) | Elimina de la llista els elements especificats a l'interval donat, des d'Index (inclòs) fins a l'Index (exclusiu). |
retainAll | boolean retainAll (Col·lecció c) | Conserva aquells elements de la llista que coincideixen amb els elements de la col·lecció donada c. |
conjunt | Conjunt E (índex int, element E) | Estableix el valor de l'element en un 'índex' donat al valor nou que proporciona 'element'. |
mida | int size () | Retorna el nombre total d'elements o la longitud de la llista. |
subLista | Llista sublista (int fromIndex, int toIndex) | Retorna una llista secundària entre l'interval donat, des d'Index fins a Índex per a la llista donada. |
toArray | Objecte () toArray () | Converteix la llista donada en una matriu. |
T () toArray (T () a) | Converteix la llista donada en una matriu del tipus donat per. | |
trimToSize | void trimToSize () | Redueix la capacitat ArrayList a la mida o al nombre d'elements presents a la llista. |
A continuació, discutirem detalladament cadascun d'aquests mètodes de l'API de la funció ArrayList i presentarem exemples de programació. Després de discutir tots els mètodes enumerats anteriorment, també durem a terme algunes operacions específiques que es duen a terme mitjançant ArrayLists que no formen part de l'API de la funció ArrayList.
Afegeix ArrayList
Jo
Prototip: addició booleana (E e)
Paràmetres: e => Element que s'ha d'afegir a l'ArrayList.
Valor de retorn: true => Element afegit correctament.
Descripció: Afegeix l’element donat e al final de la llista.
II.
Prototip: void add (índex int, element E)
Paràmetres:
índex => Posició a la qual s'ha d'afegir l'element.
Element => Element que s'ha d'afegir a la llista de matrius.
Valor de retorn: buit
Descripció: Afegeix un element determinat a la posició especificada 'índex' desplaçant l'element en aquesta posició i els elements posteriors cap a la dreta.
Excepcions: IndexOutOfBoundsException => Si l'índex especificat està fora del rang.
ArrayList addAll
Jo
Prototip: addAll booleà (col·lecció c)
Paràmetres: c => Col·lecció els elements del qual s'han d'afegir a l'ArrayList.
Valor de retorn: true => Si l'operació ha alterat l'ArrayList.
Descripció: Afegeix tots els elements de la col·lecció donada c al final de la llista. El resultat de l'operació no està definit si la col·lecció s'altera quan l'operació està en curs.
Excepcions: NullPointerException => Si es dóna la col·lecció c és nul·la.
yl
Prototip: addAll booleà (índex int, col·lecció c)
Paràmetres: índex => Posició a la qual s'han d'afegir els elements de la col·lecció donada.
Valor de retorn: true => Si la llista ha canviat com a resultat de l'operació.
Descripció: Afegeix tots els elements de la col·lecció donada c a la posició especificada per l’índex a la llista. L'element de l'índex especificat i els elements posteriors es desplacen cap a la dreta. El resultat de l'operació no està definit si la col·lecció que s'afegeix s'altera quan l'operació està en curs.
Excepcions: IndexOutOfBoundsException: si l'índex on s'ha d'afegir la col·lecció està fora dels límits
NullPointerException: si la col·lecció donada c és nul·la.
El següent programa Java mostra l’ús dels mètodes add i addAll.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print the list System.out.println('Initial ArrayList:' + city_List); //add an element at index 1 using add method overload city_List.add(1, 'NYC'); //print the list System.out.println('
rrayList after adding element at index 1:' + city_List); //define a second list ArrayList more_Cities = new ArrayList(Arrays.asList('Pune', 'Hyderabad')); //use addAll method to add the list to ArrayList at index 4 city_List.addAll(4,more_Cities); //print the list System.out.println('
ArrayList after adding list at index 4:' + city_List); } }
Sortida:
Llista inicial de matrius: (Delhi, Bombai, Chennai, Calcuta)
rrayList després d'afegir l'element a l'índex 1: (Delhi, Nova York, Bombai, Chennai, Calcuta)
ArrayList després d'afegir la llista a l'índex 4: (Delhi, Nova York, Bombai, Chennai, Pune, Hyderabad, Calcuta)
convertidor de vídeo gratuït per a fitxers grans
El programa anterior utilitza les dues versions del mètode add per afegir elements a la llista. També afegeix una col·lecció a la llista a l'índex especificat. Tingueu en compte el desplaçament dels elements a la dreta de l'ArrayList, tal com es desprèn de la sortida del programa.
ArrayList Afegeix al frontal
Com ja s'ha esmentat, la primera versió del mètode add afegeix els elements al final de la llista. Si voleu afegir els elements al començament de l'ArrayList, heu de fer servir la segona versió del mètode add. Aquest mètode add inclou un índex com a paràmetre. Aquest índex és la posició en què s'ha d'afegir l'element.
Per tant, per afegir l'element al començament de la llista, heu d'especificar l'índex com a 0 que és l'inici de la llista.
El programa següent afegeix un element a la part frontal de l'ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //define new ArrayList and initialize it ArrayList numList = new ArrayList(); numList.add(5); numList.add(7); numList.add(9); //print the ArrayList System.out.println('Initial ArrayList:'); System.out.println(numList); //use add method with index=0 to add elements to the beginning of the list numList.add(0, 3); numList.add(0, 1); System.out.println('ArrayList after adding elements at the beginning:'); //print ArrayList System.out.println(numList); } }
Sortida:
Llista inicial de matrius:
(5, 7, 9)
ArrayList després d'afegir elements al principi:
(1, 3, 5, 7, 9)
Eliminar ArrayList
I.
Prototip: Elimina E (índex int)
Paràmetres: index => Posició en què s'ha d'eliminar l'element de l'ArrayList.
Valor de retorn: E => Element que se suprimeix
Descripció: Suprimeix l’element de l’índex de l’ArrayList i mou els elements posteriors cap a l’esquerra.
Excepcions: IndexOutOfBoundsException => L'índex especificat està fora del rang.
II.
Prototip: eliminar booleà (objecte o)
Paràmetres: o => Element que s'ha d'eliminar de l'ArrayList.
Valor de retorn: true => Si l'element és present a la llista.
Descripció: Suprimeix la primera aparició de l'element o de la llista. Si l'element no és present a la llista, no hi haurà cap efecte d'aquesta operació. Un cop esborrat l'element, els elements següents es desplacen cap a l'esquerra.
ArrayList removeAll
Prototip: booleà removeAll (Col·lecció c)
Paràmetres: c => Col·lecció els elements de la qual coincideixen amb els de ArrayList i s'han de suprimir.
Valor de retorn: true => Si l'operació altera l'ArrayList.
Descripció: Elimina tots els elements de la llista que coincideixen amb els elements de la col·lecció donada c. Com a resultat, els elements restants es desplacen a l'esquerra de la llista.
Excepcions: ClassCastException => La classe no és la mateixa que la de la col·lecció especificada, la qual cosa implica que la classe és incompatible.
NullPointerException => Si la col·lecció donada c és nul·la; o si c té un element nul i la col·lecció no ho permet.
ArrayList removeRange
Prototip: buit protegit removeRange (int fromIndex, int toIndex)
Paràmetres: fromIndex => Índex de l'element inicial de l'interval a suprimir.
toIndex => Índex de l'element després de l'últim element de l'interval a suprimir.
Valor de retorn: buit
Descripció: Elimina de la llista els elements especificats a l'interval donat, des d'Index (inclòs) fins a l'Index (exclusiu). Aquesta operació escurça la longitud de la llista per (toIndex-fromIndex). Aquesta operació no té cap efecte en cas que fromIndex = toIndex.
Excepcions: IndexOutOfBoundsException => Si algun dels índexs (fromIndex o toIndex) està fora dels límits.
Implantem un programa Java per demostrar alguns d'aquests mètodes d'eliminació que hem comentat anteriorment.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(Arrays.asList('Delhi','Mumbai','Chennai', 'Kolkata', 'Pune', 'Hyderabad')); //print the list System.out.println('Initial ArrayList:' + city_List); //remove element at index 2 city_List.remove(2); //print the list System.out.println('
ArrayList after removing element at index 2:' + city_List); //remove the element 'Kolkata' city_List.remove('Kolkata'); //print the list System.out.println('
ArrayList after removing element -> Kolkata:' + city_List); //create new list ArrayList newCities=new ArrayList(Arrays.asList('Delhi','Hyderabad')); //call removeAll to remove elements contained in newCities list. city_List.removeAll(newCities); //print the list System.out.println('
ArrayList after call to removeAll:' + city_List); } }
Sortida:
Llista inicial de matrius: (Delhi, Bombai, Chennai, Calcuta, Pune, Hyderabad
ArrayList després d'eliminar l'element de l'índex 2: (Delhi, Bombai, Calcuta, Pune, Hyderabad)
ArrayList després d'eliminar l'element -> Calcuta: (Delhi, Bombai, Pune, Hyderabad)
ArrayList després de la trucada per eliminar All: (Mumbai, Pune)
Mida de la llista de matrius (longitud)
Prototip: int size ()
Paràmetres: NUL
Valor de retorn: int => Nombre d'elements a l'ArrayList.
Descripció: Retorna el nombre total d'elements o la longitud de l'ArrayList.
Assegureu-vos de la capacitat
Prototip: nul garanteixCapacity (int minCapacity)
Paràmetres: minCapacity => La capacitat mínima desitjada per a l'ArrayList.
Valor de retorn: buit
Descripció: Augmenta la capacitat de l'ArrayList per assegurar-se que té la capacitat mínima.
trimToSize
Prototip: void trimToSize ()
Paràmetres: NUL
Valor de retorn: buit
Descripció: Redueix la capacitat ArrayList a la mida o al nombre d'elements presents a la llista.
L'exemple de programació següent mostra els mètodes size (), enableCapacity () i trimToSize ().
import java.util.ArrayList; public class Main { public static void main(String () args) { //Create and initialize Arraylist ArrayList evenList=new ArrayList(5); System.out.println('Initial size: '+evenList.size()); evenList.add(2); evenList.add(4); evenList.add(6); evenList.add(8); evenList.add(10); //print the list and size System.out.println('Original List: ' + evenList); System.out.println('ArrayList Size after add operation: '+evenList.size()); //call ensureCapacity () with minimum capacity =10 evenList.ensureCapacity(10); //add two more elements evenList.add(12); evenList.add(14); //print the size again System.out.println('ArrayList Size after ensureCapacity() call and add operation: '+evenList.size()); //call trimToSize() evenList.trimToSize(); //print the size and the ArrayList System.out.println('ArrayList Size after trimToSize() operation: '+evenList.size()); System.out.println('ArrayList final: '); for(int num: evenList){ System.out.print(num + ' '); } } }
Sortida:
Mida inicial: 0
Llista original: (2, 4, 6, 8, 10)
ArrayList Size després de l'operació d'afegir: 5
Mida de la llista ArrayList després de la operació de trucada i afegir sureCapacity ():
ArrayList Size després de l'operació trimToSize (): 7
Final de la llista ArrayList:
2 4 6 8 10 12 14
ArrayList conté
Prototip: booleà conté (Objecte o)
Paràmetres: o => Element que s'ha de comprovar si està present a l'ArrayList.
Valor de retorn: true => Si l'ArrayList conté l'element o.
Descripció: Comprova si la llista conté l’element donat ‘o’. Retorna cert si l'element és present.
Fem servir el mètode 'conté' al programa següent.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call contains method to check if different strings are present in ArrayList System.out.println('ArrayList contains ('Red Green'): ' +colorsList.contains('Red Green')); System.out.println('ArrayList contains ('Blue'): ' +colorsList.contains('Blue')); System.out.println('ArrayList contains ('Yellow'): ' +colorsList.contains('Yellow')); System.out.println('ArrayList contains ('White'): ' +colorsList.contains('White')); } }
Sortida:
ArrayList conté ('Verd vermell'): fals
ArrayList conté ('Blau'): cert
ArrayList conté ('groc'): fals
ArrayList conté ('Blanc'): cert
Com es mostra a la sortida anterior, el mètode 'conté' comprova si l'argument proporcionat està present a l'ArrayList i retorna cert o fals.
ArrayList obtenir
Prototip: E get (índex int)
Paràmetres: index => Índex en què es vol recuperar l’element de l’ArrayList.
Valor de retorn: E => Valor de l'element a l'índex donat a l'ArrayList.
Descripció: Retorna l'element de la llista present a la posició especificada per 'índex'.
Excepcions: IndexOutOfBoundsException => Si l'índex està fora de límit.
Conjunt ArrayList (element de reemplaçament)
Prototip: Conjunt E (índex int, element E)
Paràmetres: índex => Índex en què s'ha de substituir l'element.
Element => Nou element que s'ha d'establir a l'índex especificat.
Valor de retorn: E => Element que se substitueix per l'operació establerta.
Descripció: Estableix el valor de l’element de l’índex donat al valor nou que dóna l’element.
Excepcions: IndexOutOfBoundsException => Si l'índex està fora de límit
El programa Java següent utilitza el mètode get () i set () per recuperar i substituir els valors de l'ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call get () method to retrieve value at index 2 System.out.println('Entry at index 2 before call to set: ' + colorsList.get(2)); //replace the value at index 2 with new value colorsList.set(2,'Yellow'); //print the value at index 2 again System.out.println('Entry at index 2 after call to set: ' + colorsList.get(2)); } }
Sortida:
Entrada a l’índex 2 abans de la trucada per definir: Blau
Entrada a l’índex 2 després de la trucada per definir: groc
ArrayList és clar
Prototip: void clear ()
Paràmetres: NUL
Valor de retorn: buit
Descripció: Esborra la llista eliminant tots els elements de la llista.
ArrayList és buit
Prototip: boolean isEmpty ()
Paràmetres: NUL
Valor de retorn: true => si la llista està buida
Descripció: Comprova si la llista indicada està buida.
A continuació es demostren les funcions Clear () i isEmpty ().
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //print the ArrayList System.out.println('The ArrayList: ' + colorsList); //call clear() nethod on ArrayList colorsList.clear(); //check if ArrayList is empty using isEmpty() method System.out.println('Is ArrayList empty after clear ()? :' + colorsList.isEmpty()); } }
Sortida:
La llista de matrius: (vermell, verd, blau, blanc)
ArrayList està buit després de clear ()? : cert
ArrayList indexOf
Prototip: int indexOf (objecte o)
Paràmetres: o => Element l'índex del qual es troba a l'ArrayList.
Valor de retorn: int => Índex de la primera aparició de l'element a la llista.
Descripció: Retorna l'índex de la primera aparició de l'element o de la llista. -1 si l'element o no està present a la llista.
ArrayList lastIndexOf
Prototip: int lastIndexOf (objecte o)
Paràmetres: o => L'element a cercar.
Valor de retorn: int => Índex de l'última aparició de l'element a la llista.
Descripció: Retorna l'índex de l'última aparició de l'element o especificat a la llista. -1 si l'element no està present a la llista.
El programa Java següent mostra els mètodes indexOf i lastIndexOf d'ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize intList ArrayList intList = new ArrayList(); intList.add(1); intList.add(1); intList.add(2); intList.add(3); intList.add(5); intList.add(3); intList.add(2); intList.add(1); intList.add(1); //print the ArrayList System.out.println('The ArrayList: ' + intList); //call indexOf() and lastIndexOf() methods to check the indices of specified elements System.out.println('indexOf(1) : ' + intList.indexOf(1)); System.out.println('lastIndexOf(1) : ' + intList.lastIndexOf(1)); System.out.println('indexOf(2) : ' + intList.indexOf(2)); System.out.println('lastIndexOf(2) : ' + intList.lastIndexOf(2)); System.out.println('indexOf(3) : ' + intList.indexOf(3)); System.out.println('lastIndexOf(3) : ' + intList.lastIndexOf(3)); System.out.println('indexOf(5) : ' + intList.indexOf(5)); System.out.println('lastIndexOf(5) : ' + intList.lastIndexOf(5)); } }
Sortida:
La llista de matrius: (1, 1, 2, 3, 5, 3, 2, 1, 1)
indexOf (1): 0
lastIndexOf (1): 8
índexOf (2): 2
lastIndexOf (2): 6
índexOf (3): 3
lastIndexOf (3): 5
índexOf (5): 4
lastIndexOf (5): 4
ArrayList a Array
Prototip: Objecte () toArray ()
Paràmetres: NUL
Valor de retorn: Objecte () => una matriu. Aquesta matriu retornada conté tots els elements de la llista en una seqüència adequada.
Descripció: Converteix la llista donada en una matriu.
Prototip: T () toArray (T () a)
Paràmetres: a => Matriu per emmagatzemar elements de la llista. Si la mida de la matriu no és suficient per als elements de llista, es crea una altra matriu amb el mateix tipus que a per emmagatzemar elements.
Valor de retorn: T () => Matriu que conté tots els elements de la llista.
Descripció: Converteix la llista donada en una matriu del tipus donat per.
Excepcions: ArrayStoreException => Si hi ha un desajustament en el tipus d'execució de la matriu i el tipus d'execució o super tipus dels seus elements.
NullPointerException => La matriu donada és nul·la
El programa Java següent mostra el mètode toArray d'ArrayList.
import java.util.*; public class Main { public static void main(String() args) { // define and initialize ArrayList ArrayList intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); // print ArrayList System.out.println('ArrayList: ' + intList); //declare array Integer myArray() = new Integer(intList.size()); //use toArray method to convert ArrayList to Array myArray = intList.toArray(myArray); //print the Array System.out.println('Array from ArrayList:' + Arrays.toString(myArray)); } }
Sortida:
Llista de matrius: (10, 20, 30, 40, 50)
Array from ArrayList: (10, 20, 30, 40, 50)
Clon ArrayList
Prototip: Clon d'objectes ()
Paràmetres: NUL
Valor de retorn: Object => Clon de la instància ArrayList.
Descripció: Fa una còpia superficial de la llista ArrayList donada.
import java.util.ArrayList; public class Main { public static void main(String a()){ ArrayList fruitsList = new ArrayList(); //Adding elements to the ArrayList fruitsList.add('Apple'); fruitsList.add('Orange'); fruitsList.add('Melon'); fruitsList.add('Grapes'); System.out.println('Original ArrayList: '+fruitsList); ArrayList clone_list = (ArrayList)fruitsList.clone(); System.out.println('Cloned ArrayList: '+ clone_list); //add one elmeent & remove one element from original arraylist fruitsList.add('Mango'); fruitsList.remove('Orange'); //print original and cloned ArrayList again System.out.println('
Original ArrayList after add & remove:'+fruitsList); System.out.println('Cloned ArrayList after original changed:'+clone_list); } }
Sortida:
ArrayList original: (Poma, taronja, meló, raïm)
Llista de matrius clonada: (Poma, taronja, meló, raïm)
ArrayList original després d'afegir i eliminar: (Poma, Meló, Raïm, Mango)
Llista de matrius clonada després del canvi original: (Poma, taronja, meló, raïm)
A la sortida del programa anterior, podeu veure que ArrayList clonat és una còpia poc profunda de l'ArrayList original. Això significa que quan es canvia l'ArrayList original, aquests canvis no es reflecteixen a l'ArrayList clonada ja que no comparteixen les ubicacions de memòria de cada element.
Per fer una còpia profunda d'Array, cal recórrer l'ArrayList original i copiar cadascun dels seus elements a l'ArrayList de destinació.
com es crida a una funció en python principal
Llista secundària ArrayList
Prototip: Llista sublista (int fromIndex, int toIndex)
Paràmetres: fromIndex => Índex inicial de l'interval (inclòs)
toIndex => Índex final de l'interval (exclusiu)
Valor de retorn: Llista => Sublista de la llista de l'interval donat.
Descripció: Retorna una llista secundària entre un interval determinat, des de l’índex fins a l’índex de la llista donada. Tingueu en compte que aquesta subllista o la visualització de la llista en l'interval donat admet totes les operacions admeses per la llista. No es torna cap visualització si fromIndex = toIndex.
Excepcions: IndexOutOfBoundsException => Llançat quan toIndex està fora del rang.
IllegalArgumentException => Si fromIndex> toIndex, és a dir, els índexs estan fora de servei.
Vegem un exemple del mètode de sublista.
import java.util.ArrayList; import java.util.List; class Main{ public static void main(String a()){ //create and initialize the ArrayList ArrayList intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); intList.add(30); intList.add(35); intList.add(40); intList.add(45); intList.add(50); //print the ArrayList System.out.println('Original ArrayList: '+intList); //create a sublist for the given ArrayList ArrayList sub_ArrayList = new ArrayList(intList.subList(2, 6)); //print the sublist System.out.println('Sublist of given ArrayList: '+sub_ArrayList); } }
Sortida:
Llista de matrius original: (5, 10, 15, 20, 25, 30, 35, 40, 45, 50)
Sublista de la matriu donada: (15, 20, 25, 30)
ArrayList retainAll
Prototip: boolean retainAll (Col·lecció c)
Paràmetres: c => Col·lecció amb elements que s'han de conservar a la llista.
Valor de retorn: true => Si ArrayList va canviar com a resultat de l'operació.
Descripció: Conserva aquells elements de la llista que coincideixen amb els elements de la col·lecció donada c.
Excepcions: ClassCastException => El tipus de col·lecció i el tipus de llista no coincideixen
NullPointerException => La col·lecció donada és nul·la o la llista conté un element nul i la col·lecció no permet els nuls.
El programa següent mostra el mètode retainAll.
import java.util.*; class Main{ public static void main(String args()){ //create and initialize ArrayList ArrayList colorsList=new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print the ArrayList System.out.println('Original ArrayList:' + colorsList); //define another collection ArrayList color_collection=new ArrayList(); color_collection.add('Red'); color_collection.add('Blue'); System.out.println('Collection elements to be retained in the list:' + color_collection); //call retainAll method with above collection as an argument colorsList.retainAll(color_collection); //print the ArrayList after retainAll call. System.out.println('ArrayList after retainAll call:' + colorsList); } }
Sortida:
ArrayList original: (vermell, verd, blau, groc)
Elements de col·lecció que es conservaran a la llista: (Vermell, Blau)
ArrayList després de la trucada retainAll: (Vermell, Blau)
ArrayList Iterator
Prototip: Iterador iterador ()
Paràmetres: NUL
Valor de retorn: Iterador => iterador sobre els elements de la llista.
Descripció: Retorna un iterador per recórrer els elements de la llista en la seqüència adequada.
ArrayList listIterator
I.
Prototip: ListIterator listIterator ()
Paràmetres: NUL
Valor de retorn: ListIterator => listIterator sobre els elements de la llista.
Descripció: Retorna l'iterador de la llista per recórrer els elements de la llista donada.
II.
Prototip: ListIterator listIterator (int index)
Paràmetres: index => Posició del primer element al listIterator.
Valor de retorn: ListIterator => ListIterator per a la llista de l'índex especificat.
Descripció: Retorna l'iterador de la llista a partir de la posició 'índex' especificada per recórrer els elements de la llista donada.
Excepcions: IndexOutOfBoundsException => L'índex donat està fora del rang.
Exemple de mètodes iterator () i listIterator ().
import java.util.*; class Main{ public static void main(String args()){ //create ArrayList and initialize it ArrayList cities=new ArrayList(); cities.add('Mumbai'); cities.add('Pune'); cities.add('Hyderabad'); cities.add('Delhi'); //use iterator() method to traverse through the list System.out.println('List contents using Iterator () method:'); Iterator iter=cities.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } //use listIterator() method to traverse through the list System.out.println('
List contents using listIterator () method:'); ListIterator list_iter=cities.listIterator(); while(list_iter.hasNext()) { System.out.print(list_iter.next() + ' '); } } }
Sortida:
Enumereu el contingut mitjançant el mètode Iterator ():
Mumbai Pune Hyderabad Delhi
Llista de continguts mitjançant el mètode listIterator ():
Mumbai Pune Hyderabad Delhi
Afegiu matriu a ArrayList a Java
ArrayList admet el mètode addAll per afegir elements de la col·lecció a ArrayList. De manera similar, també podeu afegir una matriu a la llista Array. Això es fa mitjançant el mètode 'Collections.addAll'.
Exemple d'afegir una matriu a la llista Array.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print ArrayList System.out.println('
Initial ArrayList :' + city_List); //define an array. String() myArray = new String(){'Cochin', 'Goa'}; //add the array to the ArrayList Collections.addAll(city_List,myArray); //print the ArrayList System.out.println('
ArrayList after adding array :' + city_List); } }
Sortida:
Llista inicial de matrius: (Delhi, Bombai, Chennai, Calcuta)
ArrayList després d'afegir matriu: (Delhi, Bombai, Chennai, Calcuta, Cochin, Goa)
Ordeneu ArrayList a Java
ArrayList utilitza el mètode Collections.sort per ordenar els seus elements. Per defecte, la llista s’ordena en ordre ascendent pel mètode Collections.sort. Si ArrayList s’ha d’ordenar en ordre descendent, haureu de proporcionar un paràmetre a ‘Collections.reverseOrder ()’ al mètode d’ordenació.
A continuació es mostra un programa per ordenar una ArrayList en ordre ascendent i descendent:
import java.util.*; public class Main { public static void main(String args()){ //Create and initialize an ArrayList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print initial ArrayList System.out.println('Initial ArrayList:' + colorsList); //sort ArrayList in ascending order Collections.sort(colorsList); //print sorted ArrayList System.out.println('
ArrayList sorted in ascending order:'); System.out.println(colorsList); //sort ArrayList in reverse(desending) order Collections.sort(colorsList, Collections.reverseOrder()); //print sorted list System.out.println('
ArrayList sorted in descending order:'); System.out.println(colorsList); } }
Sortida:
Llista inicial de matrius: (vermell, verd, blau, groc)
ArrayList ordenat per ordre ascendent:
(Blau, verd, vermell, groc)
ArrayList ordenat en ordre descendent:
(Groc, vermell, verd, blau)
En cas que ArrayList contingui altres objectes de classe com a elements, podeu fer servir interfícies Comparable i Comparator. Més detalls sobre les interfícies es tractaran en els nostres tutorials posteriors.
Inverteix una llista de matrius a Java
També podeu revertir una ArrayList a Java. Un mètode per fer-ho és utilitzar el mètode tradicional de recórrer l'ArrayList en l'ordre invers i copiar cada element a una nova ArrayList.
Un altre mètode és utilitzar la classe Collections que proporciona el mètode 'invers' que s'utilitza per invertir una col·lecció.
A continuació es mostra el programa per invertir una ArrayList mitjançant la classe Collections.
import java.io.*; import java.util.*; public class Main { public static void main(String() args) { // create and initialize an ArrayList ArrayList oddList = new ArrayList(); oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); System.out.print('Initial ArrayList: ' + oddList); // use Collections.reverse method to reverse the ArrayList Collections.reverse(oddList); //print the ArrayList System.out.print('
Reversed ArrayList: ' + oddList); } }
Sortida:
Llista inicial de matrius: (1, 3, 5, 7, 9)
Llista de matrius invertida: (9, 7, 5, 3, 1)
Elimineu els duplicats d'una llista de matrius a Java
Per eliminar duplicats de l'ArrayList, podeu tornar a recórrer al mètode tradicional d'utilitzar un iterador per recórrer l'ArrayList i emmagatzemar només la primera aparició de l'element en una ArrayList diferent.
Un altre mètode és utilitzar el mètode ‘distinct ()’ de la classe stream (). Aquest mètode retorna un flux d'elements diferents. La funció stream () està disponible a Java a partir de Java 8.
A continuació es dóna la implementació del mètode stream () .distinct ():
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String() args) { // Create an ArrayList of numbers ArrayList numList = new ArrayList (Arrays.asList(1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)); //print the original ArrayList System.out.println('Original ArrayList:' + numList); //Use Java 8 stream().distinct() method to remove duplicates from the list List distinctList = numList.stream().distinct().collect(Collectors.toList()); //print the new list System.out.println('ArrayList without duplicates:' + distinctList); } }
Sortida:
Llista de matrius original: (1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)
ArrayList sense duplicats: (1, 2, 3, 5, 6, 7, 8)
Reprodueix aleatòriament una llista de matrius a Java
També podeu ‘barrejar’ o aleatoritzar els elements ArrayList. Això es fa mitjançant el mètode Collections.shuffle (). Mitjançant aquest mètode, podeu barrejar l'ArrayList amb la configuració predeterminada o proporcionar una funció random () que aleatoritzi els elements segons el valor aleatori proporcionat.
A continuació es proporciona un programa Java per aconseguir-ho.
import java.util.*; public class Main { public static void main(String() args) { //create and initialize a String ArrayList ArrayList strlist = new ArrayList(); strlist.add('east'); strlist.add('west'); strlist.add('north'); strlist.add('south'); strlist.add('southwest'); strlist.add('northeast'); //print the original list System.out.println('Original ArrayList :
' + strlist); //shuffle the ArrayList without random function Collections.shuffle(strlist); System.out.println('
Shuffled ArrayList without Random() :
' + strlist); // shuffle the ArrayList with random() function Collections.shuffle(strlist, new Random()); System.out.println('
Shuffled ArrayList with Random() :
' + strlist); // use random (2) to shuffle the ArrayList Collections.shuffle(strlist, new Random(2)); System.out.println('
Shuffled ArrayList with Random(2) :
' + strlist); } }
Sortida:
ArrayList original: (est, oest, nord, sud, sud-oest, nord-est) ArrayList barrejat sense aleatòria (): (nord, nord-est, est, sud-oest, sud, oest)
ArrayList barrejat amb Random (): (sud, est, nord, nord-est, oest, sud-oest)
ArrayList barrejat amb Random (2): (sud-oest, sud, est, nord-est, nord, oest)
Preguntes freqüents
P # 1) Quina diferència hi ha entre contenidors homogenis i heterogenis a Java?
Resposta: Els contenidors homogenis contenen objectes / elements del mateix tipus. D’altra banda, els contenidors heterogenis tenen objectes de tipus mixt.
Q # 2) ArrayList a Java és heterogeni?
Resposta: Sí. Atès que ArrayLists admet genèrics i, per tant, esborra tipus, pot contenir objectes mixtos quan s’implementa com a ArrayList genèric.
Q # 3) ArrayList pot emmagatzemar int?
Resposta: No. ArrayLists no pot emmagatzemar valors com int, però pot emmagatzemar objectes sencers, ja que ArrayLists només pot contenir objectes. Per tant, per emmagatzemar tipus primitius heu d'utilitzar classes d'embolcall com Integer per a ints.
Q # 4) Què passa quan ArrayList està ple?
Resposta: Tots els objectes ArrayList tenen una característica anomenada 'capacitat'. Quan ArrayList està ple, la capacitat de l'ArrayList augmenta automàticament per deixar lloc a més elements.
Q # 5) Quina diferència hi ha entre el mètode removeAll i retainAll a ArrayList?
Resposta: Els mètodes ArrayList 'removeAll' i 'retainAll' presenten un comportament oposat.
Tot i que el mètode removeAll elimina tots els elements de la llista que coincideixen amb la col·lecció passada com a argument per a aquest mètode, en canvi, retainAll conserva tots els elements de la llista que coincideixen amb el de la col·lecció.
Conclusió
En aquest tutorial, hem parlat detalladament dels mètodes ArrayList amb un exemple.
També hem considerat alguns casos especials com ara afegir elements a la part frontal de la llista. També vam discutir altres operacions a ArrayList com ara classificar, revertir i barrejar ArrayList.
Al nostre proper tutorial, analitzarem algunes de les conversions ArrayList.
=> Mireu aquí les sèries de formació Java senzilles.
Lectura recomanada
- Tutorial de reflexió de Java amb exemples
- Tutorial de cadenes de Java | Mètodes de cadena Java amb exemples
- Mètodes de llista de Java: ordena llista, conté, afegeix llista, elimina llista
- Java ArrayList - Com declarar, inicialitzar i imprimir una ArrayList
- Conversions de Java ArrayList a altres col·leccions
- Tutorial Java SWING: Gestió de contenidors, components i esdeveniments
- Inverteix una matriu a Java: 3 mètodes amb exemples
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java