要使用Java对列表进行排序,可以使用sort(List<T> list) 方法。此方法可以对所有元素必须实现Comparable接口的列表进行排序。
在下面的示例中,House类是用户定义的。为了使其具有可比性,它实现了Comparable接口。通过使用该sort(List<T> list) 方法,可以按升序对其进行排序。
如果要颠倒排序顺序,可以简单地使用sort(List<T> list, Comparator<? super T> c) 。参数是Collections.reverseOrder()方法。此方法返回一个Comparator,它对实现Comparable接口的对象集合使用自然顺序的相反顺序。由于House类实现了Comparable接口,因此我们可以使用此方法自动颠倒顺序。
import java.util.Collections;import java.util.LinkedList;import java.util.List;
//sort self-defined object linkedlist in Java
class House implements Comparable<House> {
String type;
int size;
public House(String t, int s) {
type = t;
size = s;
}
@Override
public int compareTo(House o) {
int comparedSize = o.size;
if (this.size > comparedSize) {
return 1;
} else if (this.size == comparedSize) {
return 0;
} else {
return -1;
}
}
public String toString() {
return type;
}}
public class SortLinkedList {
public static void main(String[] args) {
LinkedList<House> houseList = new LinkedList<House>();
houseList.add(new House("medium", 200));
houseList.add(new House("small", 100));
houseList.add(new House("large", 300));
System.out.println(houseList);
// sort in ascending order
Collections.sort(houseList);
System.out.println(houseList);
// sort in descending order
Collections.sort(houseList, Collections.reverseOrder());
System.out.println(houseList);
}
public static void printList(List l) {
for (Object o : l) {
System.out.println(o);
}
}}
输出:
[medium, small, large]
[small, medium, large]
[large, medium, small]
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。