Rumah >Java >javaTutorial >Isih tatasusunan 2D berdasarkan nilai dalam mana-mana lajur tertentu di Jawa
Tatasusunan ialah struktur data linear yang digunakan untuk menyimpan satu set elemen dengan jenis data yang serupa. Ia menyimpan data secara berurutan. Sebaik sahaja kami mencipta tatasusunan, kami tidak boleh menukar saiznya, iaitu ia adalah panjang tetap.
Andaikan kita mempunyai tatasusunan 2D tertib M x M, dengan M ialah bilangan baris dan lajur. Kita perlu mengisih lajur yang ditentukan bagi tatasusunan yang diberikan. Dalam artikel ini kami akan cuba mencari penyelesaian kepada masalah yang diberikan.
Isih bermaksud menyusun semula elemen senarai atau tatasusunan yang diberikan dalam tertib menaik atau menurun. Marilah kita memahami apa yang menyusun melalui perwakilan visual berikut -
Apabila kita mengisih lajur pertama tatasusunan 2D ini -
// declaration with size Data_Type nameOfarray[][] = new Data_Type[sizeofrow][sizeofcolumn]; Or, // declaration and initialization Data_Type nameOfarray[][] = { {values separated by comma} };
Kami boleh menggunakan mana-mana sintaks di atas dalam program kami.
Sebagai ganti Data_Type, kami boleh memberikan jenis data primitif seperti int dan double. Baris dan Lajur ialah saiz tatasusunan yang dikehendaki.
Sebelum masuk ke prosedur, mari kita bincangkan satu perkara lagi.
Java menyediakan kaedah terbina dalam yang dipanggil sort() untuk mengisih tatasusunan dan koleksi dalam susunan semula jadi. Comparator ialah antara muka umum yang boleh kita gunakan apabila kita perlu mengisih elemen dengan cara tersuai, pada asasnya, kita boleh mengawal susunan pengisihan. Antara muka ini mentakrifkan kaedah ‘compare()’ yang menerima dua parameter dan membandingkannya. Mengembalikan 0 apabila dua argumen adalah sama, nilai positif jika argumen pertama lebih besar daripada argumen kedua, dan nilai negatif sebaliknya.
Comparator<typeOfelement> nameOfcollection = new Comaprator<typeOfelement>() { // your code here };
Langkah 1 - Tentukan kaedah "araySort()" bersama dua parameter dalam kelas "Srt". Dalam kaedah ini, cipta objek antara muka Comparator "comp". Sekarang, tentukan kaedah perbandingan yang mengambil kedua-dua tatasusunan baris bersama-sama sebagai parameter.
Langkah 2 - Selanjutnya, kami akan menggunakan blok if-else untuk membandingkan nilai lajur yang ditentukan dan kembalikan 1 jika elemen lajur pertama lebih besar daripada lajur kedua, jika tidak, kembalikan -1 .
Langkah 3 - Sekarang, susun tatasusunan menggunakan kaedah "Arrays.sort()".
Langkah 4 - Gunakan dua untuk gelung untuk mencetak tatasusunan diisih baharu.
Langkah 5 - Akhir sekali, dalam kaedah main(), kami akan mengisytiharkan dan memulakan tatasusunan. Teruskan mencipta objek kelas "Srt" dan panggil kaedah "araySort()" dengan "aray" dan indeks lajur sebagai parameter.
import java.util.*; class Srt { void araySort(int aray[][], int cl) { Comparator<int[]> comp = new Comparator<int[]>() { public int compare(int[] val1, int[] val2) { if(val1[cl-1] > val2[cl-1]) { return 1; } else { return -1; } } }; Arrays.sort(aray, comp); System.out.println("The sorted array: "); for(int i = 0; i< aray.length; i++) { for (int j = 0; j < aray[i].length; j++) { System.out.print(aray[i][j] + " "); } System.out.println(); } } } public class Sorting { public static void main(String[] args) { int aray[][] = { { 7, 2, 1, 3 }, { 6, 1, 3, 7 }, { 4, 9, 8, 0 }, { 8, 0, 1, 2 } }; System.out.println("The given array we have: "); // for each loop to print original 2D array for (int[] array : aray) { for (int print : array) { System.out.print(print + " "); } System.out.println(); } Srt obj = new Srt(); // calling method using object obj.araySort(aray, 1); obj.araySort(aray, 3); } }
The given array we have: 7 2 1 3 6 1 3 7 4 9 8 0 8 0 1 2 The sorted array: 4 9 8 0 6 1 3 7 7 2 1 3 8 0 1 2 The sorted array: 8 0 1 2 7 2 1 3 6 1 3 7 4 9 8 0
Tatasusunan dua dimensi ialah tatasusunan dengan baris dan lajur. Dalam artikel ini, kami mencipta program Java untuk mengisih tatasusunan dua dimensi berdasarkan nilai lajur yang ditentukan. Kami melihat cara mengisih tatasusunan atau koleksi menggunakan kaedah terbina dalam "compare()" antara muka Comparator.
Atas ialah kandungan terperinci Isih tatasusunan 2D berdasarkan nilai dalam mana-mana lajur tertentu di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!