Rumah >Java >javaTutorial >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.
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.
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.
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'.
Collections.sort( nameOfcollection, ComparatorObject );
Ia mengembalikan komparator dalam susunan terbalik
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) + " "); } } }
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
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) + " "); } } }
Elements of the unsorted list: 97 93 95 99 82 88 Elements of the newly sorted list: 99 97 95 93 88 82
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!