CodeGym/Blog Java/Aleatoriu/Metoda Arrays.asList() în Java
John Squirrels
Nivel
San Francisco

Metoda Arrays.asList() în Java

Publicat în grup
Mulți începători amestecă conceptul metodei Arrays.asList() cu structura de date ArrayList. Chiar dacă ar putea să arate și să sune asemănător, acestea două sunt total diferite când vine vorba de implementare. În această postare, vom acoperi utilizarea de bază a metodei Arrays.asList() și vom elimina unele confuzii predominante legate de aceasta.

De ce este folosit Arrays.asList()?

Dacă aveți un Array pe care trebuie să îl transformați într-o listă, atunci java.util.Arrays oferă un wrapper Arrays.asList() pentru a servi acestui scop. Cu cuvinte simple, această metodă ia o matrice ca parametru și returnează o listă. Porțiuni majore ale API-ului platformei Java au fost dezvoltate înainte de introducerea cadrului de colecții. Deci, ocazional, s-ar putea să fie nevoie să traduceți între matricele tradiționale și colecțiile mai moderne. Această funcție servește ca o legătură între colecții și API-urile bazate pe Array.Metoda Arrays.asList() în Java - 1

Exemplu

Aruncă o privire la următorul exemplu:
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {

	String[] teamMembers = {"Amanda", "Loren", "Keith"};
      // using aslist() method
	List teamList = Arrays.asList(teamMembers);
	System.out.println("List : " + teamList);

	HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
	System.out.println("HashSet : " + teamHashSet);
    }
}
Ieșire:
Lista : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet nu menține ordinea

Cum sunt diferite Arrays.asList() și ArrayList?

Când apelați metoda Arrays.asList() pe o matrice, obiectul returnat nu este un ArrayList (o implementare redimensionabilă a matricei a interfeței List ). Este un obiect de vizualizare cu metode get() și set() care accesează tabloul de bază. Toate metodele care ar schimba dimensiunea matricei, cum ar fi add() sau remove() al iteratorului asociat, aruncă o excepție UnsupportedOperationException . Motivul pentru care programul java se compilează cu succes, dar dă o excepție de rulare este că, aparent, o „List” este returnată ca rezultat alArrays.asList() . Unde sunt permise toate operațiunile de adăugare/ștergere. Dar, din moment ce structura de date de bază este o „matrice” neredimensionabilă , de aceea este aruncată o excepție în timpul rulării. Iată un fragment care arată cum arată:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
   public static void main(String[] args) {
	Integer[] diceRoll = new Integer[6];
      //using aslist() method
	List diceRollList = Arrays.asList(diceRoll);
	System.out.println(diceRollList);

	// using getters and setters to randomly access the list
	diceRollList.set(5, 6);
	diceRollList.set(0, 1);
	System.out.println(diceRollList.get(5));
	System.out.println(diceRollList.get(1));

	System.out.println(diceRollList);

	diceRollList.add(7); // Add a new Integer to the list
    }
}
Ieșire:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Excepție în firul „principal” java.lang.UnsupportedOperationException la java.util.AbstractList.add(AbstractList. java:148) la java.util.AbstractList.add(AbstractList.java:108) la ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Exemple de utilizare a metodei asList().

Începând cu Java SE 5.0, metoda asList() este declarată ca având un număr variabil de argumente. În loc să transmiteți o matrice, puteți trece și elemente individuale. De exemplu:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
    public static void main(String[] args) {
	List seasons = Arrays.asList("winter", "summer", "spring", "fall");
	List odds = Arrays.asList(1, 3, 5, 7, 9);

	System.out.println(seasons);
	System.out.println(odds);
    }
}
Ieșire:
[iarna, vara, primavara, toamna] [1, 3, 5, 7, 9]

Concluzie

Pentru a utiliza Arrays.asList() trebuie să rețineți că este doar o metodă de înveliș pentru propriul utilitar. Nu o amestecați cu ArrayList și rețineți că returnează o „listă”. Inițial, este posibil să primiți erori pentru efectuarea funcțiilor de adăugare/eliminare, dar totul dispare cu o practică și o înțelegere consecventă. Așa că pornește IDE-ul tău și ai o experiență grozavă de învățare!
Comentarii
  • Popular
  • Nou
  • Vechi
Trebuie să fii conectat pentru a lăsa un comentariu
Această pagină nu are încă niciun comentariu