Apakah Array Dinamik di Jawa?



Array dinamik di Java adalah jenis array dengan peningkatan besar untuk pengubahan saiz automatik. Satu-satunya had tatasusunan ialah ukurannya tetap.

Susunan di adalah struktur data homogen yang dilaksanakan di Jawa sebagai objek. Susunan menyimpan satu atau lebih nilai dari jenis data tertentu dan memberikan akses yang diindeks untuk menyimpannya. Elemen tertentu dalam array diakses oleh indeksnya. Dalam artikel ini, kita akan membincangkan Dynamic Array di Java dalam urutan berikut:

Pengenalan Array Dinamik di Jawa

Array dinamik adalah jenis array dengan peningkatan besar untuk pengubahan saiz automatik. Satu-satunya had tatasusunan ialah ukurannya tetap. Ini diterjemahkan menjadi makna bahawa anda hanya dapat menentukan jumlah elemen yang dapat disimpan oleh array anda lebih awal. Sebaliknya, susunan dinamik dapat berkembang apabila kita menambahkan lebih banyak elemen dalam masa nyata. Oleh itu, pengekod tidak perlu menentukan ukuran array lebih awal. Ia juga mempunyai beberapa kekuatan:





  • Pencarian pantas . Sama seperti tatasusunan, ketika mengambil elemen pada indeks tertentu, memerlukan waktu O (1).



    tukar dua kali ganda menjadi integer dalam java
  • Saiz berubah-ubah . Kita boleh memasukkan seberapa banyak elemen yang kita mahukan dan susunan dinamik akan berkembang untuk menahannya.

  • Mesra cache . Sama dengan tatasusunan, tatasusunan dinamik dapat meletakkan item di sebelah satu sama lain dalam memori, sehingga menjadikan penggunaan cache dengan cekap.



Terdapat beberapa kelemahan untuk menggunakan tatasusunan dinamik dalam kod kami. Walaupun, kami menggunakan tatasusunan dinamik lebih daripada apa-apa dalam kebanyakan aplikasi, terdapat beberapa kes di mana ia tidak menjadi pilihan paling disukai kerana keterbatasannya.

  • Kes terburuk perlahan . Biasanya, sementara penambahan elemen baru pada akhir array dinamik, diperlukan O (1) pada satu kejadian. Walau bagaimanapun, jika array dinamik tidak mempunyai lagi indeks untuk item baru, maka perlu dikembangkan, yang memerlukan O (n) pada satu masa.

  • Sisipan dan penghapusan yang mahal. Sama dengan tatasusunan, unsur-unsur disimpan berdekatan antara satu sama lain. Oleh itu, semasa menambah atau membuang item di tengah larik, ia mendorong elemen lain, yang memerlukan O (n) pada satu masa.

Gambar rajah di bawah menunjukkan bagaimana tatasusunan berfungsi dalam masa nyata dan menggambarkan bagaimana elemen disusun. Ini juga menunjukkan bagaimana arahan berubah untuk kes rata dan fungsi array terburuk.

tatasusunan - susunan dinamik dalam java - edureka

Saiz vs Kapasiti

Ketika kita menginisialisasi array dinamik, implementasi array dinamik membuat array ukuran tetap yang difahami. Ukuran awal sesuai dengan pelaksanaannya. Sebagai contoh, mari kita buat susunan pelaksanaan kita untuk menggunakan 10 indeks. Sekarang kami menambahkan empat item ke array dinamik kami. Kini, susunan dinamik kami mempunyai panjang empat. Walau bagaimanapun, tatasusunan asas kami mempunyai panjang 10. Oleh itu, kami dapat mengatakan bahawa ukuran array dinamik adalah empat dan kapasitinya adalah 10. Array dinamik menyimpan Indeks akhir tertentu untuk menjejaki titik akhir array dinamik dan permulaan dari mana kapasiti tambahan bermula.

Berganda Bergambar

Ada kes di mana kita cuba menambahkan item ke array di mana kapasitasnya sudah penuh. Oleh itu, untuk membuat susunan dinamik bilik secara automatik membuat susunan baru, lebih besar dan mendasar. Biasanya, ia menjadi dua kali lebih besar untuk menangani sebarang penambahan baru, yang sebelumnya tidak dijangkakan. Oleh itu, menyalin setiap item tidak memakan masa. Setiap kali menambahkan item ke array dinamik kami secara automatik membuat array mendasari ukuran ganda baru, yang mana append tidak memerlukan masa.

Memadamkan Elemen

Semasa menghapus elemen dari array, kaedah 'remove ()' default menghilangkan elemen dari akhir dan secara automatik menyimpan sifar pada indeks terakhir. Ia juga akan menghapus elemen pada indeks tertentu dengan memanggil kaedah removeAt (i) di mana 'I' adalah indeks. Kaedah removeAt (i) mengalihkan semua elemen kanan di sebelah kiri dari indeks yang diberikan.

Mengubah saiz Array

Apabila tatasusunan tidak mempunyai data di sebelah kanan larik yang selain memerlukan memori yang tidak perlu, kaedah srinkSize () membebaskan memori tambahan. Apabila semua slot habis dan elemen tambahan ditambahkan, susunan ukuran tetap yang mendasari harus meningkatkan ukuran. Ubah ukuran sebenarnya mahal, kerana kita harus memperuntukkan susunan yang lebih besar dan menyalin semula semua elemen dari larik yang telah anda tumbuhkan sebelum akhirnya dapat menambahkan item baru.

Di bawah ini adalah contoh program di mana ukuran array menjadi penuh dan elemen baru disalin ke array ukuran berganda baru. Elemen yang merupakan elemen string yang disebut 'Mahavir' adalah tambahan pada susunan ukuran 3 yang sudah lengkap.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Masukkan ukuran array :: ') int size = sc.nextInt () String myArray [] = String baru [size] System.out.println (' Masukkan elemen array (Strings) :: ') untuk (int i = 0 i

Pengeluaran:

Dengan ini, kita sampai pada akhir artikel Dynamic Array di Java. Saya harap anda mendapat idea tentang cara bekerja dengan tatasusunan dinamik.

Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar yang berpuas hati tersebar di seluruh dunia. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java. Kursus ini dirancang untuk memberi Anda awal dalam pengaturcaraan Java dan melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen di blog “Dynamic Array in Java” ini dan kami akan menghubungi anda secepat mungkin.