java collections_用Java对用户定义对象的LinkedList进行排序

1cb03bb88bd90f1507d611b4305197f3.png

要使用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的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

fbb581ab6ca6f2f85d36c624dc65a319.png

6549dc714b03d4018f7479473624241c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值