Rumah >Java >javaTutorial >Isih vektor Java dalam susunan menurun menggunakan pembanding

Isih vektor Java dalam susunan menurun menggunakan pembanding

WBOY
WBOYke hadapan
2023-08-20 19:17:03796semak imbas

Isih vektor Java dalam susunan menurun menggunakan pembanding

Vektor melaksanakan antara muka Senarai dan digunakan untuk mencipta tatasusunan dinamik. Tatasusunan yang saiznya tidak tetap dan boleh berkembang mengikut keperluan kami dipanggil tatasusunan dinamik. Comparator ialah antara muka yang tersedia dalam pakej 'java.util'.

Isih bermaksud menyusun semula elemen senarai atau tatasusunan yang diberikan dalam tertib menaik atau menurun. Dalam artikel ini, kami akan mencipta vektor dan kemudian cuba mengisih elemennya dalam susunan menurun menggunakan pembanding.

Program untuk mengisih vektor Java dalam susunan menurun

Pembanding

Seperti namanya, ia digunakan untuk membandingkan sesuatu. Di Java, Comparator ialah antara muka untuk menyusun objek tersuai. Kita boleh menulis logik kita sendiri untuk mengisih objek yang ditentukan dalam kaedah terbina dalam "compare()". Kaedah ini menerima dua objek sebagai parameter dan mengembalikan nilai integer. Melalui nilai integer ini, Comparator menentukan objek yang lebih besar.

Sintaks

Comparator< TypeOfComparator > nameOfComparator = new Comparator< TypeOfComparator >() {
   compare( type object1, type object1 ) {
      // logic for comparison
   }
};

Dalam kaedah seperti 'Collection.sort()', nameOfComparator ialah parameter yang digunakan untuk operasi pengisihan.

Kaedah Collections.sort()

Kelas 'Koleksi' Antara Muka Koleksi menyediakan kaedah statik bernama 'Collections.sort()' yang boleh mengisih elemen koleksi tertentu seperti ArrayList atau LinkedList Ia tersedia dalam pakej 'java.util'.

Sintaks

Collections.sort( nameOfcollection, ComparatorObject );

Collections.reverseOrder()

Ia mengembalikan komparator dalam susunan terbalik

Contoh 1

Dalam contoh berikut, kami akan mentakrifkan vektor bernama 'vectlist' dan menyimpan beberapa objek di dalamnya dengan menggunakan kaedah 'add()' Kemudian, gunakan kaedah Comparator dan 'Collection.sort()' untuk mengisih vektor dalam susunan menurun.

import java.util.*;
public class VectClass {
   public static void main(String args[]) {
      // Creation of vector 
      Vector<Integer> vectList = new Vector<>();
      // Adding elements in the vector
      vectList.add(97);
      vectList.add(93);
      vectList.add(95);
      vectList.add(99);
      vectList.add(82);
      vectList.add(88);
      System.out.println("Elements of the unsorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the vector
         System.out.print(vectList.get(i) + " "); 
      }
      System.out.println();
      // Using comparator interface for sorting
      Comparator comp = Collections.reverseOrder();
      Collections.sort(vectList, comp);
      System.out.println("Elements of the newly sorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the new vector
		   System.out.print(vectList.get(i) + " "); 
      }
   }
}

Output

Note: VectClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Elements of the unsorted list: 
97 93 95 99 82 88 
Elements of the newly sorted list: 
99 97 95 93 88 82 

Contoh 2

Dalam contoh ini, pertama, kita akan mencipta Comparator dan di dalamnya, kita mentakrifkan logik kita dalam kaedah 'compare()' untuk mengisih objek vektor dalam tertib menurun Logik di sini menyatakan bahawa mengambil dua objek pada masa yang sama dan membandingkan mereka menggunakan blok if-else. Jika objek pertama lebih besar daripada pulangan kedua -1 sebaliknya 1. Kemudian, kami menghantar objek pembanding ke 'Collection.sort()' untuk operasi pengisihan.

import java.util.*;
public class VectClass {
   public static void main(String args[]) {
      // Using comparator interface for sorting
      Comparator<Integer> comp = new Comparator<Integer>() {
         // logic to sort in descending order
         public int compare(Integer i, Integer j) {
            if(i < j) {
               return 1;
            } else {
               return -1;
            }
         }
      };
      // Creation of vector 
      Vector<Integer> vectList = new Vector<>();
      // Adding elements in the vector
      vectList.add(97);
      vectList.add(93);
      vectList.add(95);
      vectList.add(99);
      vectList.add(82);
      vectList.add(88);
      System.out.println("Elements of the unsorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the vector
		   System.out.print(vectList.get(i) + " "); 
      }
      System.out.println();
      Collections.sort(vectList, comp); // sort using comparator
      System.out.println("Elements of the newly sorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the new vector
         System.out.print(vectList.get(i) + " "); 
      }
   }
}

Output

Elements of the unsorted list: 
97 93 95 99 82 88 
Elements of the newly sorted list: 
99 97 95 93 88 82 

Kesimpulan

Artikel ini telah menerangkan pelaksanaan Antara Muka Pembanding dan juga kami menemui penggunaan beberapa kaedah terbina seperti 'compareTo()', 'Collection.sort()' dan 'Collections.reverseOrder()'

Atas ialah kandungan terperinci Isih vektor Java dalam susunan menurun menggunakan pembanding. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam