Rumah >Java >javaTutorial >Ralat Java: Ralat penggabungan tatasusunan, cara menyelesaikan dan mengelak

Ralat Java: Ralat penggabungan tatasusunan, cara menyelesaikan dan mengelak

WBOY
WBOYasal
2023-06-24 20:57:581138semak imbas

Ralat Java: Ralat Penggabungan Array, Cara Menyelesaikan dan Elakkan

Dalam pengaturcaraan Java, tatasusunan ialah struktur data yang kerap digunakan. Apabila anda perlu menggabungkan dua atau lebih tatasusunan, anda perlu menggunakan kaedah penggabungan tatasusunan yang disediakan oleh Java. Walau bagaimanapun, semasa proses penggabungan tatasusunan, beberapa ralat mungkin berlaku. Artikel ini akan memperkenalkan ralat dan penyelesaian penggabungan tatasusunan Java biasa, dan memberikan beberapa cadangan untuk mengelakkan ralat ini.

Ralat biasa:

  1. Ralat panjang tatasusunan tidak konsisten

Apabila panjang dua tatasusunan yang hendak dicantumkan tidak konsisten, ralat akan berlaku menggunakan kaedah penggabungan tatasusunan yang disediakan oleh Java. Contohnya:

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
int[] arr3 = Arrays.copyOf(arr1, arr1.length + arr2.length);
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);

Dalam contoh ini, array arr1 mempunyai panjang 3 dan array arr2 mempunyai panjang 2, cuba menggabungkannya dengan menyalinnya ke dalam array arr3 dengan panjang 5. Walau bagaimanapun, kerana panjang arr3 hanya boleh ditakrifkan dengan jumlah panjang arr1 dan arr2, cantuman tatasusunan gagal.

  1. Ralat ketidakserasian jenis tatasusunan

Di Jawa, hanya tatasusunan jenis yang sama boleh digabungkan. Jika jenis elemen dua tatasusunan berbeza, Java akan membuang UnsupportedOperationException. Contohnya:

String[] strArr = {"a", "b", "c"};
int[] intArr = {1, 2, 3};
Object[] objArr = ArrayUtils.addAll(strArr, intArr);

Dalam contoh ini, anda cuba menggabungkan tatasusunan jenis String dan tatasusunan jenis int ke dalam tatasusunan jenis Objek. Memandangkan jenis String dan int tidak serasi, Java akan membuang UnsupportedOperationException.

Penyelesaian:

  1. Prakira panjang tatasusunan

Sebelum menggabungkan tatasusunan, anda boleh menggunakan formula pengiraan panjang tatasusunan untuk mengira panjang tatasusunan sasaran yang akan dibuat. Sebagai contoh, apabila menggabungkan dua tatasusunan panjang n dan m, panjang tatasusunan destinasi hendaklah n+m. Kemudian, gunakan kaedah System.arraycopy() untuk menyalin dua tatasusunan ke dalam tatasusunan sasaran. Contohnya:

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
int[] arr3 = new int[arr1.length + arr2.length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);

Dalam contoh ini, panjang arr3 ialah jumlah panjang arr1 dan arr2 Mula-mula buat tatasusunan dengan panjang 5, dan kemudian salin masing-masing elemen arr1 dan arr2 digabungkan dengan jayanya.

  1. Gunakan generik untuk menggabungkan tatasusunan

Anda boleh menggunakan generik untuk menyelesaikan isu ketidakserasian jenis tatasusunan. Buat tatasusunan jenis Objek, tukar tatasusunan untuk digabungkan menjadi Objek jenis, dan kemudian gunakan kaedah Arrays.copyOf() untuk menggabungkannya. Contohnya:

String[] strArr = {"a", "b", "c"};
Integer[] intArr = {1, 2, 3};
Object[] objArr = new Object[strArr.length + intArr.length];
System.arraycopy(strArr, 0, objArr, 0, strArr.length);
System.arraycopy(intArr, 0, objArr, strArr.length, intArr.length);

Dalam contoh ini, mula-mula buat tatasusunan Objek dengan panjang 6, dan kemudian salin strArr dan intArr ke objArr masing-masing. Memandangkan Object ialah kelas induk bagi semua kelas Java, semua jenis tatasusunan boleh ditukar kepada jenis Objek untuk mencapai penggabungan tatasusunan.

Nasihat untuk mengelakkan kesilapan:

  1. Elakkan membuat tatasusunan berbilang dimensi

Tatasusunan berbilang dimensi meningkatkan kerumitan proses penggabungan tatasusunan dengan ketara. Anda harus cuba mengelak daripada mencipta tatasusunan berbilang dimensi dan sebaliknya menggunakan tatasusunan satu dimensi atau gunakan Senarai daripada rangka kerja koleksi Java.

  1. Elakkan menggunakan jumlah memori yang besar

Tatasusunan ialah struktur data intensif memori dan jika anda menggabungkan terlalu banyak tatasusunan, anda mungkin kehabisan memori. Penggunaan ingatan harus dirancang dengan sewajarnya untuk senario aplikasi tertentu untuk mengelakkan terlalu banyak memori.

  1. Ikuti standard pengekodan Java

Hendaklah mengikut piawaian pengekodan Java, termasuk nama pembolehubah yang bermakna dan boleh dibaca, komen dan format kod, dsb. Ini boleh menjadikan kod lebih mudah difahami dan diselenggara.

Kesimpulan:

Di Java, tatasusunan ialah struktur data yang penting dan juga tempat ralat berlaku. Jika anda perlu menggabungkan tatasusunan, penjagaan mesti diambil untuk mengelakkan ralat seperti panjang tatasusunan yang tidak konsisten atau jenis tatasusunan yang tidak serasi. Dalam pengaturcaraan sebenar, anda harus mengikut piawaian pengekodan Java dan menggunakan penyelesaian di atas untuk mengelakkan dan menyelesaikan ralat penggabungan tatasusunan.

Atas ialah kandungan terperinci Ralat Java: Ralat penggabungan tatasusunan, cara menyelesaikan dan mengelak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn