CodeGym /Java blog /Tilfældig /Arrays.asList() metode i Java
John Squirrels
Niveau
San Francisco

Arrays.asList() metode i Java

Udgivet i gruppen
Mange begyndere blander konceptet Arrays.asList() -metoden sammen med datastrukturen ArrayList. Selvom de kan se ud og lyde ens, er disse to helt forskellige, når det kommer til implementering. I dette indlæg vil vi dække den grundlæggende brug af Arrays.asList()- metoden og afhjælpe nogle fremherskende forvirringer relateret til den.

Hvorfor bruges Arrays.asList()?

Hvis du har et array, som du skal omdanne til en liste, giver java.util.Arrays en wrapper Arrays.asList() til at tjene dette formål. Med enkle ord tager denne metode et array som en parameter og returnerer en liste. Store dele af Java-platformens API blev udviklet, før samlingsrammen blev introduceret. Så nogle gange skal du måske oversætte mellem traditionelle arrays og de mere moderne samlinger. Denne funktion fungerer som et link mellem samlinger og Array-baserede API'er.Arrays.asList() metode i Java - 1

Eksempel

Tag et kig på følgende eksempel:

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);
    }
}
Produktion:
Liste : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet opretholder ikke orden

Hvordan er Arrays.asList() og ArrayList forskellige?

Når du kalder Arrays.asList() -metoden på et array, er det returnerede objekt ikke en ArrayList (En array- implementering, der kan ændres størrelse af List- grænsefladen). Det er et visningsobjekt med get() og set() metoder, der får adgang til det underliggende array. Alle metoder, der ville ændre størrelsen af ​​arrayet, såsom add() eller remove() af den tilknyttede iterator, kaster en UnsupportedOperationException . Grunden til, at java-programmet kompileres med succes, men giver en Runtime-undtagelse, er, at der tilsyneladende returneres en "Liste" som følge afArrays.asList() . Hvor alle tilføjelse/sletningsoperationer er tilladte. Men da den underliggende datastruktur er et "array", der ikke kan ændres størrelse , bliver der derfor kastet en undtagelse under kørselstiden. Her er et uddrag, der viser, hvordan det ser ud:

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
    }
}
Produktion:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Undtagelse i tråden "main" java.lang.UnsupportedOperationException på java.util.AbstractList.add(AbstractList. java:148) på java.util.AbstractList.add(AbstractList.java:108) på ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Eksempler på brug af asList()-metoden

Fra Java SE 5.0 er asList() -metoden erklæret at have et variabelt antal argumenter. I stedet for at sende et array, kan du også videregive individuelle elementer. For eksempel:

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);
    }
}
Produktion:
[vinter, sommer, forår, efterår] [1, 3, 5, 7, 9]

Konklusion

For at bruge Arrays.asList() skal du huske på, at det kun er en indpakningsmetode til dit eget hjælpeprogram. Bland det ikke sammen med ArrayList og husk, at det returnerer en "liste". I starten kan du få fejl for at udføre tilføjelses-/fjernelsesfunktioner, men det hele forsvinder med konsekvent praksis og forståelse. Så tryk på din IDE og få en god læringsoplevelse!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION