satu. Tentang karakteristik array
1. Di Java, ada batas memeriksa apakah Anda menggunakan array atau koleksi. Jika operasi di luar batas, runtimeException akan diperoleh.
2. Array hanya dapat menyimpan jenis tertentu. Array dapat menyimpan tipe data asli, tetapi koleksi tidak bisa. Koleksi tidak memproses objek dalam jenis tertentu. Mereka memproses semua objek sesuai dengan jenis objek. Apa yang disimpan dalam koleksi adalah referensi objek daripada objek itu sendiri.
3. Kelas koleksi hanya dapat menyimpan referensi ke objek. Array dapat dibuat untuk secara langsung menyimpan tipe data asli, atau untuk menyimpan referensi ke objek. Dalam koleksi, Anda dapat menggunakan kelas pembungkus, seperti Integer, Double, dll. Untuk menyimpan nilai tipe data asli.
Contoh kode:
int a = 10; Integer integer = bilangan bulat baru (a); int b = integer.intvalue (); System.out.println (a = b);
4. Array objek dan array tipe data asli hampir sama digunakan; Satu -satunya perbedaan adalah bahwa array objek menyimpan referensi, dan array tipe data asli memegang nilai tipe data asli.
2. Penggunaan array yang benar
Jika Anda perlu menyimpan sejumlah besar data, misalnya, jika Anda perlu membaca 100 angka, Anda perlu mendefinisikan 100 variabel. Jelas, tidak masuk akal untuk mengulangi kode 100 kali. Bagaimana cara menyelesaikan masalah ini? Bahasa Java menyediakan struktur data array (array), yang merupakan wadah yang dapat menyimpan elemen dari tipe data yang sama dan dapat menyimpan 100 angka ke dalam array. Array akan sangat membantu saat ini ~
1. Manfaat array
Apakah ada perbedaan antara menyimpan data dan tidak menyimpan data? Keuntungan terbesar dari array adalah bahwa mereka dapat secara otomatis memberi nomor semua elemen yang tersimpan. Perhatikan bahwa nomor tersebut dimulai dari 0. Mudah untuk mengoperasikan data ini.
Misalnya, nomor siswa dapat digunakan untuk menemukan siswa yang sesuai.
2. Format array
Format 1:
Jenis Elemen [] Nama Array = Jenis Elemen Baru [Jumlah elemen atau panjang array];
Contoh:
int [] arr = new int [5]; arr [0] = 1; arr [1] = 2;
Format 2:
Tipe Elemen [] Name Array = Jenis Elemen Baru [] {Element, Element, ...};
int [] arr = new int [] {3,5,1,7}; int [] arr = {3,5,1,7};Catatan: Saat mengalokasikan ruang ke array, Anda harus menentukan jumlah elemen yang dapat disimpan array untuk menentukan ukuran array. Ukuran array tidak dapat dimodifikasi setelah membuat array. Anda dapat menggunakan atribut panjang untuk mendapatkan ukuran array.
3. Deklarasikan variabel array
Untuk menggunakan array, array harus dinyatakan dalam program dan jenis elemen array harus ditentukan.
= Setengah kiri:
Pertama tulis sisi kiri untuk mengklarifikasi bahwa jenis elemen adalah int dan wadah menggunakan array. Jadi bagaimana Anda mengidentifikasi array? . Lalu gunakan tanda kurung simbol khusus [] untuk mewakilinya. Untuk menggunakan array, Anda perlu memberikan nama array, jadi kami beri nama array x di sini. Kemudian ikuti tanda yang sama.
Kode mencerminkan:
int [] x
Catatan: int x [] juga merupakan format untuk membuat array. Disarankan untuk mendeklarasikan array int [] x.
4. Buat array
= Setengah kanan:
Untuk menggunakan kata kunci baru, disebut baru. Baru digunakan untuk menghasilkan entitas kontainer dalam memori. Penyimpanan data membutuhkan ruang. Ruang untuk menyimpan banyak data dibuka dengan operator baru. int int [3]; 3 ini adalah jumlah elemen. Bagian di sebelah kanan mendefinisikan array nyata dalam memori yang dapat menyimpan 3 elemen.
Int baru [3] melakukan dua hal. Pertama, gunakan int baru [3] untuk membuat array, dan kemudian tetapkan referensi ke variabel array x.
int [] x=new int[3];
Jenis apa X?
Variabel apa pun harus memiliki tipe datanya sendiri. Perhatikan bahwa x ini bukan tipe int. int mewakili jenis elemen dalam wadah. Maka X adalah tipe array.
Array adalah tipe data terpisah. Jenis data dibagi menjadi dua sekolah besar, yang dibagi menjadi tipe data dasar dan tipe data referensi. Sekolah terbesar kedua adalah tipe data referensi. Jadi sekarang Anda telah bersentuhan dengan salah satu dari tiga jenis data yang dirujuk. Artinya, braket tipe array [] mewakili array.
int[] arr = new int[5]; Apa yang terjadi dalam ingatan?
Ketika ada program yang berjalan, perlu untuk membuka ruang di memori.int [] arr = int baru [5]; seperti apa program ini dalam memori? Ini melibatkan ruang yang dibuka oleh Java Virtual Machine saat menjalankan program. Jadi berapa banyak ruang yang dibuka Java? Terus pelajari struktur memori Java.
5. Inisialisasi array
Metode 1: Jangan gunakan operator baru
int [] arr = {1, 2, 3, 4, 5};Metode 2: Gunakan Operator Baru
int [] arr2 = int int [] {1, 2, 3, 4, 5}; int [] arr3 = int int [3]; arr3 [0] = 1; arr3 [1] = 5; arr3 [2] = 6;Jika operator baru tidak digunakan dalam inisialisasi array. Catatan: Metode penulisan berikut salah.
int [] arr; arr = {1,2,3,4,5};Pada saat ini, menginisialisasi array, Anda harus menempatkan deklarasi, penciptaan, dan inisialisasi dalam satu pernyataan. Memisahkannya akan menyebabkan kesalahan sintaks.
Jadi Anda hanya bisa menulis sebagai berikut:
int [] arr = {1,2,3,4,5};6. Array Traversal
public static void main (string [] args) {int [] x = {1, 2, 3}; untuk (int y = 0; y <3; y ++) {System.out.println (x [y]); // System.out.println ("x ["+y+"] ="+x [y]); Cetak efek x [0] = 1;} // Kemudian ini adalah operasi umum pertama dari array. Traversal}Ada atribut dalam array yang dapat memperoleh jumlah elemen dalam array, yaitu, panjang array. Name array.length
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <x.length; y ++) {System.out.println (x [y]); // system.out.println ("x ["+y+"] ="+x [y]); Cetak efek x [0] = 1;} // Kemudian ini adalah operasi umum pertama dari array. Traversal}7. Pengecualian Umum Array
Penanda sudut array melintasi Exception Bounds: Catatan: Penanda sudut array dimulai dari 0.
public static void main (string [] args) {int [] x = {1, 2, 3}; System.out.println (x [3]); // java.lang.ArrayIndexOutofBoundsException}Pengecualian Pointer Dua-Null:
public static void main (string [] args) {int [] x = {1, 2, 3}; x = null; system.out.println (x [1]); // java.lang.nullpointerException}Array:
Kapan menggunakan array: Ketika ada banyak elemen, untuk memfasilitasi pengoperasian array ini, penyimpanan sementara akan dilakukan terlebih dahulu, dan wadah yang digunakan adalah array.
Fitur:
Panjang array diperbaiki.
8. Operasi umum array
1: Kasus:
Array mengeluarkan nilai maksimum
/*Tentukan fungsi untuk mendapatkan nilai maksimum:
1. Tentukan hasilnya: Jenis Nilai Pengembalian Int
2. Konten Tidak Diketahui: Nilai maksimum yang tidak ditentukan array, maka array tidak ditentukan.
Ide:
1. Tentukan variabel dan catat elemen array yang lebih besar.
2. Iterasi melalui seluruh array dan bandingkan setiap elemen array dengan variabel.
3. Ketika suatu variabel menemukan elemen yang lebih besar dari itu, biarkan variabel mencatat nilai elemen. Ketika loop berakhir, nilai maksimum dihasilkan.
*/public static int getmax (int [] arr) {// Tentukan variabel untuk merekam nilai yang lebih besar dan menginisialisasi ke elemen apa pun dalam array. int max = arr [0]; untuk (int x = 1; x <arr.length; x ++) {if (arr [x]> max) max = arr [x];} return max;}Dua: penyortiran langsung
Kasus 2: Urutkan Array Menggunakan Sortir Langsung:
/*
Pilih Sort.
Bandingkan elemen dengan satu sudut dengan elemen lain.
Pada ujung pertama loop dalam, nilai terbanyak muncul pada posisi sudut kepala.
*/public static void selectSort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = x+1; y <arr.length; y ++) // Mengapa nilai inisialisasi y x+1? Karena setiap kali Anda membandingkan, // dibandingkan dengan elemen berikutnya yang ditandai pada sudut X. {if (arr [x]> arr [y]) {int temp = arr [x]; arr [x] = arr [y]; arr [y] = temp;}}}}Tiga: penyortiran gelembung
/*Bubbling Sort. Metode Perbandingan: Bandingkan dua elemen yang berdekatan. Jika kondisinya terpenuhi, penggantian posisi akan dilakukan. Prinsip: Loop bagian dalam berakhir sekali, dan nilai terbanyak muncul di posisi sudut ekor. */public static void Bubblesort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = 0; y <arr.length-x-1; y ++) //-x: Biarkan meta-deduksi masing-masing partisipasi dalam perbandingan. //-1: Hindari batas sudut melintasi batas. {if (arr [y]> arr [y+1]) {int temp = arr [y]; arr [y] = arr [y+1]; arr [y+1] = temp;}}}}Empat: Pencarian Setengah Lipat (Metode Dual-Particle)
/*Untuk meningkatkan efisiensi pencarian, Anda dapat menggunakan metode pencarian setengah finish. Catatan: Pencarian ini hanya berlaku untuk array yang dipesan. Metode ini juga telah menjadi metode pencarian biner. */public static int halfSeach(int[] arr,int key){int min,mid,max;min = 0;max = arr.length-1;mid = (max+min)/2;while(arr[mid]!=key){if(key>arr[mid])min = mid + 1;else if(key<arr[mid])max = mid - 1;if(min>max)return -1;mid = (max+min)/2;}return mid;}Lima: Array Flip
/*Inversi sebenarnya adalah penggantian posisi elemen dari tanda sudut kepala dan ekor, dan kemudian tanda sudut kepala meningkat secara otomatis. Tanda sudut ekornya menangkal sendiri. Ketika tanda sudut kepala adalah <tanda sudut ekor, tindakan substitusi dapat dilakukan. */public static void reverseArray (int [] arr) {for (int start = 0, end = arr.length-1; start <end; start ++, end-) {swap (arr, start, end);}} // melakukan perpindahan posisi elemen array. public static void swap (int [] arr, int a, int b) {int temp = arr [a]; arr [a] = arr [b]; arr [b] = temp;}11. Array dua dimensi
Penggunaan array
Penjelasan terperinci tentang array java
Traversal: tostring () mengembalikan elemen array sebagai string
Sortir: urutkan () pesan array dalam urutan naik
Pencarian: BinarySearch () Mencari elemen yang ditentukan dalam array yang ditentukan, mengembalikan indeks elemen. Jika tidak ada pengembalian ditemukan (-insert point-1) Catatan: Saat menggunakan fungsi pencarian, array harus diurutkan terlebih dahulu.
Array dua dimensi:
Merokok:
Tidak punya uang untuk membeli 1 variabel
Sedikit uang adalah paket array satu dimensi 20 variabel
10 paket yang sangat kaya (array dua dimensi) Array 2D
Array dua dimensi: Pada dasarnya, penyimpanan adalah array satu dimensi.
Definisi Array:
Tipe Array [] [] Nama Array = Jenis Array Baru [Jumlah array satu dimensi] [Jumlah elemen dalam setiap array satu dimensi];
Penjelasan terperinci tentang array java
PERTANYAAN: Mengapa a.length = 3, a [0] .length = 4?
Penjelasan terperinci tentang array java
Inisialisasi Array:
Inisialisasi Statis:
int [][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };
Inisialisasi Dinamis:
Penjelasan terperinci tentang array java
Operasi Umum untuk Array Dua Dimensi:
1. Melintasi array dua dimensi
2. Ringkas array dua dimensi
kelas demo3 {// mendefinisikan fungsi fungsional yang melintasi array dua dimensi public static void printarr2 (int [] [] a) {// 1. Bongkar array dua dimensi untuk (int i = 0; i <a. a. i ++) {// 2. Menghapus data pengua; ) {System.out.print (A [i] [j]+","); }}} // Tentukan fungsi untuk menghitung jumlah akumulasi elemen dalam array dua dimensi public static long getsum (int [] [] a) {// 0. Tentukan variabel hasil jumlah panjang = 0l; // 1. Bongkar array dua dimensi untuk (int i = 0; i <a. }} return sum;} // statistik Jumlah elemen dalam array dua dimensi public static int getDataCount (int [] [] a) {// 0. Catat jumlah elemen int count = 0; // 1. Bongkar array dua dimensi untuk (int i = 0; i <a. }} return count;} public static void main (string [] args) {int [] [] a = int int [] [] {{23,4,5}, {2}, {4,5,78,56,90}}; printarr2 (a); System.out.println (); System.out.println ("Jumlah Akumulasi adalah:"+getsum (a)); System.out.println ("Jumlah statistik elemen:"+getDataCount (a)); System.out.println ("Hello World!");}}Di atas adalah semua topik tentang array java. Seperti yang Anda lihat, array Java adalah struktur data yang sangat kuat.