CodeGym /Java Blog /Acak /Metode Arrays.asList() di Java
John Squirrels
Level 41
San Francisco

Metode Arrays.asList() di Java

Dipublikasikan di grup Acak
Banyak pemula mencampuradukkan konsep metode Arrays.asList() dengan struktur data ArrayList. Meskipun mereka mungkin terlihat dan terdengar mirip, keduanya sangat berbeda dalam implementasinya. Dalam posting ini, kita akan membahas penggunaan dasar metode Arrays.asList() dan akan memecahkan beberapa kebingungan yang terkait dengannya.

Mengapa Arrays.asList() digunakan?

Jika Anda memiliki Array yang perlu Anda ubah menjadi daftar, maka java.util.Arrays menyediakan pembungkus Arrays.asList() untuk melayani tujuan ini. Dengan kata sederhana, metode ini mengambil array sebagai parameter dan mengembalikan daftar. Sebagian besar API platform Java dikembangkan sebelum kerangka koleksi diperkenalkan. Jadi terkadang, Anda mungkin perlu menerjemahkan antara array tradisional dan koleksi yang lebih modern. Fungsi ini berfungsi sebagai penghubung antara Koleksi dan API berbasis Array.Metode Arrays.asList() di Java - 1

Contoh

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);
    }
}
Keluaran:
List : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet tidak menjaga ketertiban

Apa perbedaan Arrays.asList() dan ArrayList?

Saat Anda memanggil metode Arrays.asList() pada sebuah array, objek yang dikembalikan bukanlah ArrayList ( Implementasi array yang dapat diubah ukurannya dari antarmuka Daftar ). Ini adalah objek tampilan dengan metode get() dan set() yang mengakses array yang mendasarinya. Semua metode yang akan mengubah ukuran larik seperti add() atau remove() dari iterator terkait melontarkan UnsupportedOperationException . Alasan program java berhasil dikompilasi tetapi memberikan Pengecualian Runtime adalah, tampaknya, "Daftar" dikembalikan sebagai hasil dariArrays.asList() . Di mana semua operasi penambahan/penghapusan diizinkan. Tetapi karena, struktur data yang mendasarinya adalah "array" yang tidak dapat diubah ukurannya , maka pengecualian dilemparkan pada waktu proses. Berikut cuplikan yang menunjukkan tampilannya:

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
    }
}
Keluaran:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Pengecualian di 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 penggunaan metode asList()

Pada Java SE 5.0, metode asList() dideklarasikan untuk memiliki sejumlah variabel argumen. Alih-alih meneruskan array, Anda juga bisa meneruskan elemen individual. Misalnya:

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);
    }
}
Keluaran:
[musim dingin, musim panas, musim semi, musim gugur] [1, 3, 5, 7, 9]

Kesimpulan

Untuk menggunakan Arrays.asList() Anda perlu mengingat bahwa ini hanyalah metode pembungkus untuk utilitas Anda sendiri. Jangan mencampurnya dengan ArrayList dan perlu diingat bahwa ini mengembalikan "daftar". Awalnya Anda mungkin mendapatkan kesalahan untuk melakukan fungsi penambahan/penghapusan, tetapi semuanya akan hilang dengan latihan dan pemahaman yang konsisten. Jadi tekan IDE Anda dan dapatkan pengalaman belajar yang luar biasa!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION