
Vectors实现了List接口,用于创建动态数组。大小不固定且可以根据我们的需求增长的数组被称为动态数组。Comparator是‘java.util’包中可用的一个接口。
排序意味着按升序或降序重新排列给定列表或数组的元素。在本文中,我们将创建一个向量,然后尝试使用比较器按降序对其元素进行排序。
正如其名称所示,它用于比较某些东西。在Java中,Comparator是一个接口,用于对自定义对象进行排序。我们可以在其内置方法“compare()”中编写自己的逻辑来对指定的对象进行排序。该方法接受两个对象作为参数,然后返回一个整数值。通过这个整数值,Comparator决定哪个对象更大。
Comparator< TypeOfComparator > nameOfComparator = new Comparator< TypeOfComparator >() {
compare( type object1, type object1 ) {
// logic for comparison
}
};
在像‘Collection.sort()’这样的方法中,nameOfComparator是用于排序操作的参数。
立即学习“Java免费学习笔记(深入)”;
The class ‘Collections’ of the Collection Interface provides a static method named ‘Collections.sort()’ that can sort elements of specified collections like ArrayList or LinkedList. It is available in ‘java.util’ package.
Collections.sort( nameOfcollection, ComparatorObject );
It returns the comparator in reverse order.
In the following example, we will define a vector named ‘vectlist’ and store a few objects in it by using the ‘add()’ method. Then, use the Comparator object and ‘Collection.sort()’ method to sort the vector in descending order.
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
In this example, first, we will create a Comparator and inside it, we define our logic in ‘compare()’ method to sort the vector objects in descending order. The logic here states that take two objects at the same time and compare them using the if-else block. If first object is greater than second return -1 otherwise 1. Then, we pass the object of comparator to ‘Collection.sort()’ for sorting operation.
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
This article has explained the implementation of the Comparator Interface and also we discovered the use of a few inbuilt methods such as ‘compareTo()’, ‘Collection.sort()’ and ‘Collections.reverseOrder()’.
以上就是使用比较器将Java向量按降序排序的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号