Rumah >Java >javaTutorial >Bagaimana untuk menentukan dan menggunakan tatasusunan Java
Susun atur: Koleksi yang menyimpan set data jenis data yang sama.
int[]: tatasusunan jenis int
ganda[]: tatasusunan jenis berganda
Pembolehubah boleh ditakrifkan mengikut jenis, seperti :
int[] tatasusunan, tatasusunan ialah pembolehubah jenis ini Pembolehubah ini ialah pembolehubah yang menyimpan set data yang sama.
Tiga cara untuk mentakrif tatasusunan:
Cara pertama:
int[] array = {1,2,3,4,5,6};
Tentukan tatasusunan dan mulakannya
Walaupun baru tidak ditulis, ia sebenarnya objek
Nota:
int[10] array = {1,2,3,4,5,6};
Tulisan yang salah, int[] milik jenis, tiada nombor boleh ditambah dalam kurungan segi empat sama , agak Yu memecahkan genrenya di sini.
Jenis kedua:
int[] array2 = new int[3];
Tatasusunan yang ditentukan tidak dimulakan
Jenis ketiga:
int[] array3 = new int[]{1,2,3,4,5,6};
Definisi dan permulaan
Yang paling banyak digunakan daripada ketiga-tiganya ialah yang pertama
Dapatkan panjang tatasusunan:
Di Jawa, anda boleh mencari terus tatasusunan semasa melalui tatasusunan nama tatasusunan .length
Akses elemen tatasusunan:
Akses elemen tatasusunan dengan subskrip 4
Akses elemen tatasusunan di luar batas:
Bahasa Java melintasi sempadan dan secara langsung melaporkan ralat
Tukar elemen tatasusunan:
Dengan meletakkan kurungan dalam nama tatasusunan, anda bukan sahaja boleh mengakses kandungan yang dilanggan, tetapi juga Anda boleh menulis beberapa data ke dalam subskrip
Jenis pertama: (untuk gelung)
Jenis kedua: (Dipertingkatkan untuk gelung, untuk setiap gelung)
Perbezaan antara untuk gelung dan untuk setiap gelung:
Gelung for boleh mendapatkan subskrip,
Gelung untuk setiap tidak boleh mendapatkan subskrip, dan lebih banyak digunakan dalam koleksi
Kaedah ketiga: Gunakan kelas alat manipulasi tatasusunan Java Tatasusunan
Pengenalan ringkas kepada JVM
Penyimpanan pembolehubah setempat dalam ingatan:
Rujukan tidak menghala ke objek Penulisan:
Rujukan ini tidak menunjuk kepada mana-mana objek
Bolehkah rujukan menunjuk kepada berbilang objek pada masa yang sama?
Untuk kod ini, ia hanya boleh menghala ke satu objek dan menyimpan alamat objek. Pada akhirnya, hanya alamat objek terakhir disimpan
Proses menghantar tatasusunan sebagai parameter kaedah:
Menyelesaikan cetakan hasil:
Sebelum Dua penyelesaian:
hasil cetakan fun2:
Contoh analisis: Apa adakah gambar di bawah mewakili
mewakili rujukan tatasusunan2, menunjuk pada objek yang ditunjukkan oleh rujukan tatasusunan1.
Gambar berikut mewakili maksud contoh di atas:
Nota:
Petikan yang menunjuk kepada petikan Ayat ini salah, Rujukan hanya boleh menunjuk ke objek
Adakah rujukan perlu ada pada tindanan?
Tidak semestinya sama ada pembolehubah berada pada tindanan ditentukan oleh sifat pembolehubah anda. Jika tidak, sebagai contoh, pembolehubah ahli contoh tidak semestinya pada tindanan.
public class TestDemo { public static void swap(int[] array){ int tmp = array[0]; array[0] = array[1]; array[1] = tmp; } public static void main(String[] args) { int[] array = {10,20}; System.out.println("交换前: "+array[0]+" "+array[1]); swap(array); System.out.println("交换后: "+array[0]+" "+array[1]); }
Cetak hasilnya:
/** * 在原来的数组上扩大2倍 * @param array */ public static void enlarge(int[] array){ for (int i = 0; i <array.length ; i++) { array[i] = array[i]*2; } } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; enlarge(array); System.out.println(Arrays.toString(array)); }
Cetak hasil:
Kembangkan tatasusunan asal dengan 2 Nilai berbilang diletakkan dalam tatasusunan baharu
/** * 把原来数组扩大2倍的值放在一个新的数组中 * @param array * @return */ public static int[] func(int[] array) { int[] ret = new int[array.length]; for (int i = 0; i < array.length; i++) { ret[i] = array[i] * 2; } return ret; } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; int[] ret = func(array); System.out.println(Arrays.toString(ret)); }
public static String myToString(int[] array){ String str = "["; for (int i = 0; i <array.length ; i++) { str = str+array[i]; if(i != array.length-1){ str+= ","; } } str= str + "]"; return str; } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7}; String str = myToString(array); System.out.println(str); }
dan cetak hasilnya:
.
public static int maxNum(int[] array){ if(array == null) return -1; if (array.length == 0) return -1; int max = array[0]; for (int i = 1; i <array.length ; i++) { if(max < array[i]){ max = array[i]; } } return max; } public static void main(String[] args) { int[] array = {12,8,14,26,5,7,8}; int max = maxNum(array); System.out.println(max); }
Cetak hasil:
public static int findNum(int[] array,int key){ for (int i = 0; i <array.length ; i++) { if(array[i] == key){ return i; } } return -1; } public static void main(String[] args) { int[] array = {2,4,5,6,11,7,8,9}; System.out.println(findNum(array, 7)); }
Cetak hasil:
二分查找的必要条件是必须有序的数列 public static int binarySearch(int[] array,int key){ int left = 0; int right = array.length-1; while(left <= right){ int mid = (left+right)/2; if(array[mid] > key){ right = mid - 1; }else if(array[mid] < key){ left = left + 1; }else{ return mid; } } return -1; } public static void main(String[] args) { int[] array = {12,14,15,16,18,23}; System.out.println(binarySearch(array, 15)); }
Hasil cetakan:
Atas ialah kandungan terperinci Bagaimana untuk menentukan dan menggunakan tatasusunan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!