CodeGym/Java blog/Véletlen/Arrays.asList() metódus Java nyelven
John Squirrels
Szint
San Francisco

Arrays.asList() metódus Java nyelven

Megjelent a csoportban
Sok kezdő összekeveri az Arrays.asList() metódus fogalmát az ArrayList adatstruktúrával. Annak ellenére, hogy hasonlónak tűnnek és hangzanak is, ez a kettő teljesen más, ami a megvalósítást illeti. Ebben a bejegyzésben az Arrays.asList() metódus alapvető használatáról fogunk beszélni, és kiküszöböljük a vele kapcsolatos uralkodó zavarokat.

Miért használják az Arrays.asList()-et?

Ha van egy tömbje, amelyet listává kell alakítania, akkor a java.util.Arrays egy Arrays.asList() wrappert biztosít erre a célra. Egyszerűen fogalmazva, ez a módszer egy tömböt vesz paraméterként, és egy listát ad vissza. A Java platform API fő részeit a gyűjteményi keretrendszer bevezetése előtt fejlesztették ki. Így alkalmanként előfordulhat, hogy fordítania kell a hagyományos tömbök és a modernebb gyűjtemények között. Ez a függvény kapcsolatként szolgál a gyűjtemények és a tömb alapú API-k között.Arrays.asList() metódus Java nyelven - 1

Példa

Vessen egy pillantást a következő példára:
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);
    }
}
Kimenet:
Lista: [Amanda, Loren, Keith] HashSet: [Keith, Loren, Amanda] // A HashSet nem tart fenn rendet

Miben különbözik az Array.asList() és az ArrayList?

Amikor meghívja az Arrays.asList() metódust egy tömbön, a visszaadott objektum nem ArrayList (a List interfész átméretezhető tömb megvalósítása ). Ez egy nézetobjektum get() és set() metódusokkal, amelyek hozzáférnek az alapul szolgáló tömbhöz. Minden olyan metódus, amely megváltoztatja a tömb méretét , például a kapcsolódó iterátor add() vagy remove() parancsa, UnsupportedOperationException kivételt dob . Az ok, amiért a java program sikeresen lefordítja, de futásidejű kivételt ad, az az, hogy látszólag egy „Lista” jelenik meg a program eredményeként.Arrays.asList() . Ahol az összes hozzáadási/törlési művelet megengedett. De mivel a mögöttes adatstruktúra egy nem átméretezhető „tömb” , ezért a futási időben kivételt adunk. Íme egy részlet, amely bemutatja, hogyan néz ki:
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
    }
}
Kimenet:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Kivétel a "main" szálban java.lang.UnsupportedOperationException itt: java.util.AbstractList.add(AbstractList. java:148) itt: java.util.AbstractList.add(AbstractList.java:108) itt: ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Példák az asList() metódus használatára

A Java SE 5.0-tól kezdve az asList() metódus változó számú argumentumot tartalmaz. Tömb átadása helyett egyedi elemeket is átadhat. Például:
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);
    }
}
Kimenet:
[tél, nyár, tavasz, ősz] [1, 3, 5, 7, 9]

Következtetés

Az Arrays.asList() használatához ne feledje, hogy ez csak egy burkoló módszer a saját segédprogramjához. Ne keverje össze az ArrayListtel, és ne feledje, hogy „listát” ad vissza. Kezdetben hibákat kaphat az összeadási/eltávolítási funkciók végrehajtása során, de következetes gyakorlással és megértéssel mindez megszűnik. Tehát nyomja meg az IDE-jét, és élvezze a nagyszerű tanulási élményt!
Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései