CodeGym /Java блог /Случаен /Arrays.asList() Метод в Java
John Squirrels
Ниво
San Francisco

Arrays.asList() Метод в Java

Публикувано в групата
Много начинаещи смесват концепцията на метода Arrays.asList() със структурата от данни ArrayList. Въпреки че може да изглеждат и звучат подобно, тези два са напълно различни, когато става въпрос за изпълнение. В тази публикация ще разгледаме основното използване на метода Arrays.asList() и ще разсеем някои преобладаващи обърквания, свързани с него.

Защо се използва Arrays.asList()?

Ако имате масив, който трябва да превърнете в списък, тогава java.util.Arrays предоставя обвивка Arrays.asList() , която да служи за тази цел. С прости думи, този метод приема масив като параметър и връща списък. Основни части от API на Java платформата са разработени преди въвеждането на рамката за колекции. Така че понякога може да се наложи да превеждате между традиционните масиви и по-модерните колекции. Тази функция служи като връзка между колекции и базирани на масиви API.Метод Arrays.asList() в Java - 1

Пример

Разгледайте следния пример:

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);
    }
}
Изход:
Списък : [Аманда, Лорен, Кийт] HashSet : [Кийт, Лорен, Аманда] // HashSet не поддържа ред

По Howво се различават Arrays.asList() и ArrayList?

Когато извикате метода Arrays.asList() на масив, върнатият обект не е ArrayList ( Реализация на масив с възможност за преоразмеряване на интерфейс List ). Това е обект за изглед с методи get() и set() , които имат достъп до основния масив. Всички методи, които биха променor размера на масива, като add() or remove() на свързания итератор, хвърлят UnsupportedOperationException . Причината, поради която java програмата се компorра успешно, но дава изключение по време на изпълнение, е, че очевидно се връща „списък“ като резултат отArrays.asList() . Където всички операции за добавяне/изтриване са допустими. Но тъй като основната структура на данните е „масив“ без възможност за промяна на размера , следователно се хвърля изключение по време на изпълнение. Ето фрагмент, показващ How изглежда:

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
    }
}
Изход:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Изключение в нишката "main" java.lang.UnsupportedOperationException в java.util.AbstractList.add(AbstractList. java:148) в java.util.AbstractList.add(AbstractList.java:108) в ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Примери за използване на метод asList().

От Java SE 5.0 методът asList() е деклариран да има променлив брой аргументи. Вместо да предавате масив, можете също да предавате отделни елементи. Например:

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);
    }
}
Изход:
[зима, лято, пролет, есен] [1, 3, 5, 7, 9]

Заключение

За да използвате Arrays.asList(), трябва да имате предвид, че това е просто метод за обвивка за вашата собствена програма. Не го смесвайте с ArrayList и имайте предвид, че той връща „списък“. Първоначално може да получите грешки при изпълнение на функции за добавяне/премахване, но всичко изчезва с последователна практика и разбиране. Така че използвайте вашата IDE и се насладете на страхотно обучение!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION