CodeGym/Blog Java/rawak/Kaedah Arrays.asList() dalam Java
John Squirrels
Tahap
San Francisco

Kaedah Arrays.asList() dalam Java

Diterbitkan dalam kumpulan
Ramai pemula mencampur adukkan konsep kaedah Arrays.asList() dengan struktur data ArrayList. Walaupun mereka mungkin kelihatan dan terdengar serupa, kedua-dua ini sama sekali berbeza apabila ia berkaitan dengan pelaksanaan. Dalam siaran ini, kami akan membincangkan penggunaan asas kaedah Arrays.asList() dan akan menyelesaikan beberapa kekeliruan lazim yang berkaitan dengannya.

Mengapa Arrays.asList() digunakan?

Jika anda mempunyai Array yang perlu anda ubah menjadi senarai maka java.util.Arrays menyediakan pembalut Arrays.asList() untuk memenuhi tujuan ini. Dengan kata mudah, kaedah ini mengambil tatasusunan sebagai parameter dan mengembalikan senarai. Bahagian utama API platform Java telah dibangunkan sebelum rangka kerja koleksi diperkenalkan. Jadi sekali-sekala, anda mungkin perlu menterjemah antara tatasusunan tradisional dan koleksi yang lebih moden. Fungsi ini berfungsi sebagai pautan antara Koleksi dan API berasaskan Array.Kaedah Arrays.asList() dalam Java - 1

Contoh

Sila lihat contoh berikut:
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);
    }
}
Pengeluaran:
Senarai : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet tidak mengekalkan ketertiban

Bagaimanakah Arrays.asList() dan ArrayList berbeza?

Apabila anda memanggil kaedah Arrays.asList() pada tatasusunan, objek yang dikembalikan bukanlah ArrayList ( Pelaksanaan tatasusunan boleh diubah saiz bagi antara muka Senarai ). Ia ialah objek pandangan dengan kaedah get() dan set() yang mengakses tatasusunan asas. Semua kaedah yang akan mengubah saiz tatasusunan seperti add() atau remove() daripada iterator yang berkaitan membuang UnsupportedOperationException . Sebab program java berjaya menyusun tetapi memberikan Pengecualian Runtime ialah, nampaknya, "Senarai" dikembalikan sebagai hasil daripadaArrays.asList() . Di mana semua operasi penambahan/pemadaman dibenarkan. Tetapi memandangkan, struktur data asas ialah "tatasusunan" yang tidak boleh diubah saiz , oleh itu pengecualian dilemparkan pada masa larian. Berikut ialah coretan yang menunjukkan rupanya:
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
    }
}
Pengeluaran:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Pengecualian dalam thread "utama" java.lang.UnsupportedOperationException di java.util.AbstractList.add(AbstractList. java:148) di java.util.AbstractList.add(AbstractList.java:108) di ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Contoh untuk menggunakan kaedah asList().

Pada Java SE 5.0, kaedah asList() diisytiharkan mempunyai bilangan argumen yang berubah-ubah. Daripada menghantar tatasusunan, anda juga boleh menghantar elemen individu. Sebagai contoh:
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);
    }
}
Pengeluaran:
[musim sejuk, musim panas, musim bunga, musim luruh] [1, 3, 5, 7, 9]

Kesimpulan

Untuk menggunakan Arrays.asList() anda perlu ingat bahawa ia hanyalah kaedah pembungkus untuk utiliti anda sendiri. Jangan campurkannya dengan ArrayList dan perlu diingat bahawa ia mengembalikan "senarai". Pada mulanya anda mungkin mendapat ralat untuk melaksanakan fungsi penambahan/penyingkiran, tetapi semuanya hilang dengan amalan dan pemahaman yang konsisten. Jadi tekan IDE anda dan dapatkan pengalaman pembelajaran yang hebat!
Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi