Perbezaan antara array dan arraylist

Perbezaan antara array dan arraylist

Apa itu Array dan ArrayList?

Kedua-dua Array dan ArrayList adalah struktur data berasaskan indeks yang sering digunakan dalam program Java. Secara konseptual, ArrayList disokong secara dalaman oleh tatasusunan, bagaimanapun, memahami perbezaan antara keduanya adalah kunci untuk menjadi pemaju Java yang hebat. Ini adalah langkah asas untuk dimulakan, terutama pemula yang baru saja mula pengekodan. Walaupun kedua -duanya digunakan untuk menyimpan unsur -unsur di Java, yang boleh menjadi primitif atau objek, mereka mempunyai bahagian yang saksama dari perbezaan dari segi fungsi dan prestasi. Perbezaan utama antara keduanya ialah array adalah statik sedangkan arraylist bersifat dinamik. Artikel ini membandingkan kedua -dua aspek dalam pelbagai aspek supaya anda dapat memilih satu daripada yang lain.

Perbezaan antara array dan arraylist

  1. Boleh disesuaikan

Salah satu perbezaan utama dan ketara antara kedua -dua struktur data ialah array adalah sifat statik yang bermaksud ia adalah jenis data panjang tetap manakala arraylist bersifat dinamik yang bermaksud ia adalah struktur data panjang yang berubah -ubah. Dalam istilah teknikal, panjang array tidak dapat diubah atau diubahsuai setelah objek array dibuat. Ia mengandungi koleksi unsur -unsur yang sama dengan jenis data yang sama. Array di Java bekerja secara berbeza daripada yang berfungsi dalam C/C++. Arraylist, sebaliknya, dapat mengubah saiznya sendiri dan tatasusunan dapat tumbuh seperti yang mereka perlukan. Memandangkan ia adalah struktur data yang dinamik, unsur -unsur boleh ditambah dan dikeluarkan dari senarai.

  1. Generik

Anda tidak boleh membuat tatasusunan kelas generik antara muka di java jadi tatasusunan dan generik tidak sesuai dengan tangan menjadikannya mustahil untuk membuat array generik untuk satu sebab asas bahawa array adalah kovarian manakala generik adalah invarian. Walaupun array adalah struktur data panjang tetap, ia mengandungi objek kelas atau primitif yang sama dari jenis data tertentu. Jadi jika anda cuba menyimpan jenis data yang berbeza selain yang ditentukan semasa membuat objek Array, ia hanya melemparkan "ArrayStoreException". Arraylist, sebaliknya, menyokong generik untuk memastikan keselamatan jenis.

  1. Primitif

Jenis data primitif seperti int, double, long, dan char tidak dibenarkan dalam arraylist. Ia agak memegang objek dan primitif tidak dianggap objek di Java. Array, sebaliknya, boleh memegang primitif serta objek di Java kerana ia adalah salah satu struktur data yang paling berkesan di Java untuk menyimpan objek. Ini adalah jenis data agregat yang direka untuk memegang objek yang boleh sama ada dengan jenis yang sama atau berbeza.

  1. Panjang

Untuk mendapatkan panjang array, kod perlu mengakses atribut panjang kerana seseorang mesti tahu panjang untuk melaksanakan operasi pada array. Walaupun ArrayList menggunakan saiz () kaedah untuk menentukan saiz arrayList, ia agak berbeza daripada menentukan panjang array. Atribut kaedah saiz () menentukan bilangan elemen dalam arraylist, yang seterusnya adalah kapasiti arraylist.

Sebagai contoh:

kelas awam ArrayLengthTest

public static void main (string [] args)

ArrayList arrList = New ArrayList ();

String [] item = "one", "two", "three";

untuk (string str: item)

arrlist.tambah (str);

saiz int = item.saiz ();

Sistem.keluar.println (saiz);

  1. Pelaksanaan

Array adalah komponen pengaturcaraan asli di Java yang dicipta secara dinamik dan mereka menggunakan pengendali tugasan untuk memegang unsur -unsur, sementara arrayList menggunakan atribut () atribut untuk memasukkan elemen. ArrayList adalah kelas dari kerangka koleksi di Java yang menggunakan satu set kaedah tertentu untuk mengakses dan mengubahsuai unsur -unsur. Saiz arraylist dapat ditingkatkan atau menurun secara dinamik. Unsur -unsur dalam array disimpan di lokasi memori bersebelahan dan saiznya tetap statik sepanjang.

  1. Prestasi

Walaupun kedua -dua struktur data memberikan jenis prestasi yang serupa sebagai ArrayList disokong oleh tatasusunan, seseorang mempunyai kelebihan sedikit berbanding yang lain dari segi masa CPU dan penggunaan memori. Katakan, jika anda tahu saiz array, anda mungkin akan pergi dengan arraylist. Walau bagaimanapun, melelehkan array sedikit lebih cepat daripada melelong ke atas arraylist. Sekiranya program ini melibatkan sejumlah besar primitif, array akan melakukan yang lebih baik daripada arraylist, dari segi masa dan ingatan. Array adalah bahasa pengaturcaraan peringkat rendah yang boleh digunakan dalam pelaksanaan pengumpulan. Walau bagaimanapun, prestasi mungkin berbeza -beza bergantung pada operasi yang anda lakukan.

Array vs. Arraylist

Array Arraylist
Array adalah struktur data panjang tetap yang panjangnya tidak dapat diubahsuai setelah objek array dibuat. ArrayList bersifat dinamik yang bermaksud ia dapat mengubah saiznya untuk berkembang apabila diperlukan.
Saiz array kekal statik sepanjang program. Saiz arraylist dapat tumbuh secara dinamik bergantung pada beban dan kapasiti.
Ia menggunakan pengendali tugasan untuk menyimpan elemen. Ia menggunakan atribut tambahan () untuk memasukkan elemen.
Ia boleh mengandungi primitif serta objek jenis data yang sama atau berbeza. Primitif tidak dibenarkan dalam arraylist. Ia hanya boleh mengandungi jenis objek.
Array dan Generik tidak bersatu. Generik dibenarkan dalam arraylist.
Array boleh menjadi pelbagai dimensi. ArrayList adalah dimensi tunggal.
Ini adalah komponen pengaturcaraan asli di mana unsur -unsur disimpan di lokasi memori bersebelahan. Ini adalah kelas dari kerangka koleksi Java di mana objek tidak pernah disimpan di lokasi bersebelahan.
Pembolehubah panjang digunakan untuk menentukan panjang array. Kaedah saiz () digunakan untuk menentukan saiz arraylist.
Mengambil sedikit ingatan daripada ArrayList untuk menyimpan elemen atau objek tertentu. Mengambil lebih banyak ingatan daripada array untuk menyimpan objek.
Melangkah ke atas array lebih cepat daripada melelong ke atas arraylist. Melangkah ke atas ArrayList jauh lebih perlahan dari segi prestasi.

Ringkasan

Walaupun sesetengah mungkin berfikir bahawa pelaksanaan array dalam program boleh mendapatkan hasil lebih cepat daripada melakukan perkara yang sama dengan arraylists untuk alasan mudah bahawa array adalah struktur data peringkat rendah, prestasi mungkin berbeza-beza berdasarkan operasi yang anda lakukan. Nah, panjang array tetap, sedangkan saiz arraylist dapat ditingkatkan atau menurun secara dinamik, jadi ArrayList mempunyai kelebihan sedikit di atas array dari segi fungsi. Walau bagaimanapun, walaupun terdapat perbezaan, mereka juga berkongsi persamaan. Kedua-duanya adalah struktur data berasaskan indeks di Java yang membolehkan anda menyimpan objek dan kedua-duanya membenarkan nilai null serta pendua. Nah, jika anda tahu saiz objek terlebih dahulu, anda harus pergi dengan array, dan jika anda tidak pasti tentang saiz, pergi dengan arraylist.