Com utilitzar una llista de matrius de Java

Com utilitzar una llista de matrius de Java

A Java ArrayList és una matriu redimensionable per a usos generals. Proporciona la majoria de les instal·lacions que normalment s’esperen de matrius en altres idiomes. Aquests inclouen: accedir a elements mitjançant un índex, afegir, eliminar i actualitzar elements, redimensionar dinàmicament, repetir els elements, etc. La majoria d’aquestes operacions s’han modificat especialment per a l’ús general.





el restabliment de la contrasenya de la xarxa de PlayStation no funciona

Hi ha alguns altres tipus de 'matrius' (classes que implementen el fitxer Llista interfície, per ser tècnic) que estan destinats a propòsits especials. Això inclou:





  • Llista enllaçada admet la ràpida inserció i eliminació en índexs intermedis.
  • Vector és similar a un ArrayList però està sincronitzat i és adequat en lloc d'un ArrayList per a aplicacions de diversos fils.
  • Pila admet operacions per imitar una llista d'última entrada-primera sortida. Estén el Vector i per tant es sincronitza.

Aquestes classes especials estan fora de l’abast d’aquest article. Tot i això, aprendreu a configurar i utilitzar una Java ArrayList per a usos generals.





Creació d’una llista de matrius

Creació d'un fitxer ArrayList és senzill. Un buit ArrayList es pot crear utilitzant el constructor sense arguments. Aquí creem un arraylist buit per mantenir les cadenes.

ArrayList alist = new ArrayList();

Si sabeu quants elements contindrà la vostra llista de matrius, podeu especificar la capacitat inicial. Aquesta capacitat inicial és només un suggeriment per a l'assignació de memòria: la llista de matrius no es limita a contenir el nombre especificat d'ítems. Si coneixeu i especifiqueu la capacitat inicial, vosaltres podria obtenir una lleugera millora del rendiment.



ArrayList alist = new ArrayList(20);

Població d'una llista de matrius

Afegir elements al final

Poblar una llista d’arrels és bastant fàcil. Simplement utilitzeu el fitxer add () mètode per afegir un sol element al final de la llista de matrius. Aquí teniu un exemple:

ArrayList alist = new ArrayList();
alist.add('apple');
alist.add('banana');
alist.add('cantaloupe');
alist.add('orange');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]

Utilitzeu el mètode per trobar quants elements hi ha a la llista de matrius mida () .





System.out.println('Number of elements in the arraylist: ' + alist.size());
# prints
Number of elements in the arraylist: 4

Addició d’elements a un índex especificat

Voleu afegir un element a un índex arbitrari? Especifiqueu l'índex com a primer argument i l'element s'afegeix a aquest índex:

alist.add(3, 'grapes');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange]

Addició d’un munt d’elements

També podeu afegir elements de qualsevol col·lecció a la jerarquia de col·leccions de Java. An ArrayList és un tipus específic anomenat Llista . Aquí hi ha una manera de construir un fitxer Llista a partir d 'un munt d' elements (utilitzant Arrays.asList () ) i afegiu-lo a un fitxer ArrayList .





List items = Arrays.asList('pear', 'cherry');
alist.addAll(items);
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]

Per descomptat, podeu especificar un índex com a primer argument aquí per afegir els elements que comencen per aquest índex.

Accés a articles

Un cop s’han afegit els elements a la llista d’arrels, com hi tornem a accedir?

Accedir amb un índex

Si coneixeu l'índex de l'element, podeu utilitzar el fitxer aconseguir() mètode per recuperar l'element en aquest índex.

quina és la darrera generació d'iPad
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Cercar articles

Què passa si no coneixeu l’índex de l’ítem? Pots fer servir índex de() per comprovar si l'element està present a la matriu i recuperar-lo mitjançant l'índex retornat.

System.out.println(alist);
int index = alist.indexOf('orange');
if ( index <0 )
System.out.println('Item 'orange' not found');
else
System.out.println('Item 'orange' found at index ' + index);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]
Item 'orange' found at index 4

Què passa si l’element no és present a la llista d’arrels? El índex de() el mètode retorna -1 quan no es troba l'element.

index = alist.indexOf('grape');
if ( index <0 )
System.out.println('Item 'grape' not found');
else
System.out.println('Item 'grape' found at index ' + index);
# prints
Item 'grape' not found

Iterant sobre una llista de matrius

Per descomptat, l'ús més comú d'un fitxer ArrayList repeteix els elements. Això es pot aconseguir de diverses maneres. Aquí en mostrem un parell de senzills.

Aquí teniu la forma més senzilla d’iterar sobre una llista d’arrels i extreure els articles per a algun tipus de processament.

for (String fruit : alist) {
System.out.println('Found fruit '' + fruit + ''');
}
# prints
Found fruit 'apple'
Found fruit 'banana'
Found fruit 'cantaloupe'
Found fruit 'grapes'
Found fruit 'orange'
Found fruit 'pear'
Found fruit 'cherry'

Aquest codi utilitza el Java Enhanced For-Loop que es va introduir a Java 1.5. Abans d’això, podríeu repassar els elements amb un iterador. També s’utilitza un iterador quan ho necessiteu eliminar elements durant el procés d’iteració tal com il·lustra l’exemple següent. (Tingueu en compte que fem una còpia de la llista de treballs i la treballem.)

ArrayList blist = new ArrayList(alist);
for (Iterator iter = blist.iterator() ; iter.hasNext() ; ) {
String fruit = iter.next();
if ( fruit.startsWith('c') )
iter.remove();
else
System.out.println('Keeping '' + fruit + ''');
}
# prints
Keeping 'apple'
Keeping 'banana'
Keeping 'grapes'
Keeping 'orange'
Keeping 'pear'

Substitució d’elements

Un cop afegits els elements, necessitem una manera de substituir els elements no desitjats. Això es pot fer mitjançant el fitxer conjunt() amb un índex.

alist.set(5, 'pineapple');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pineapple, cherry]

S'estan eliminant els elements

Vegem ara com podem eliminar elements d’una llista de matriculació. Si coneixeu l’índex de l’ítem (potser l’heu utilitzat índex de() descrit anteriorment), podeu utilitzar el fitxer remove () mètode amb l’índex. Retorna l'element eliminat.

String fruit = alist.remove(2);
System.out.println('Removed element at 2: ' + fruit);
# prints
Removed element at 2: cantaloupe

També podeu especificar l'element per eliminar el fitxer primer aparició de l'element a la llista. Torna el mètode cert si l’element es va trobar i es va eliminar.

l'ordinador Windows 10 no s'encén
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Com feu servir el fitxer ArrayList en els vostres projectes i amb quins problemes especials us heu enfrontat? Feu-nos-ho saber en els comentaris següents.

Compartir Compartir Tweet Correu electrònic Com accedir al nivell de bombolla integrat de Google a Android

Si mai heu necessitat assegurar-vos que hi hagi alguna cosa al mateix nivell, podeu obtenir un nivell de bombolla al telèfon en qüestió de segons.

Llegiu a continuació
Temes relacionats
  • Programació
  • Java
Sobre l'autor Jay Sridhar(17 articles publicats) Més de Jay Sridhar

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us