Rumah > Java > javaTutorial > teks badan

Isih tatasusunan 2D berdasarkan nilai dalam mana-mana lajur tertentu di Jawa

WBOY
Lepaskan: 2023-08-29 21:01:03
ke hadapan
954 orang telah melayarinya

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 tatasusunan 2D berdasarkan nilai lajur

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 -

Contoh 1

Apabila kita mengisih lajur pertama tatasusunan 2D ini -

Isih tatasusunan 2D berdasarkan nilai dalam mana-mana lajur tertentu di Jawa

Sintaks tatasusunan dua dimensi

// declaration with size
Data_Type nameOfarray[][] = new Data_Type[sizeofrow][sizeofcolumn]; 
Or,
// declaration and initialization
Data_Type nameOfarray[][] = { {values separated by comma} }; 
Salin selepas log masuk

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.

Antara muka pembanding

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.

Tatabahasa

Comparator<typeOfelement> nameOfcollection = new Comaprator<typeOfelement>() {
   // your code here
};
Salin selepas log masuk

Algoritma

  • 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.

Contoh

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);
   }
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Kesimpulan

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan