java如何对list进行排序_Java中如何对List排序

原文:https://www.journaldev.com/787/java–sort–list

有时我们必须在Java中对列表进行排序,然后再处理其元素。在本教程中,我们将学习如何对列表进行排序。我们还将学习如何使用我们自己的Comparator实现对对列列表进行排序。

Java List与数组相似,不同之处在于列表的长度是动态的,并且来自于Java Collection框架。实际上,List是一个接口,大多数情况下我们会用ArrayList或LinkedList等来实现。

Java Sort List

在这里,我们将学习如何对Java对象列表进行排序。我们用Collections.sort()对列表进行递增排序。列表中的所有元素必须实现Comparable接口,否则抛出IllegalArgumentException。

让我们看一个简单的示例,对字符串列表进行排序。

package com.journaldev.sort;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class JavaListSort {

/**

* This class shows how to sort ArrayList in java

* @param args

*/

public static void main(String[] args) {

List strList = new ArrayList();

strList.add("A");

strList.add("C");

strList.add("B");

strList.add("Z");

strList.add("E");

//using Collections.sort() to sort ArrayList

Collections.sort(strList);

for(String str: strList) System.out.print(" "+str);

}

}

正如您所见,我们正在用Collections.sort()方法对字符串列表进行排序。String类实现了Comparable接口。

输出:

fcb5193f84aac3308463ab7439f7f8d0.png

Java Sort List of Objects

让我们看另一个示例,在该示例中我们将对自定义的对象列表进行排序。注意该类必须实现Comparable接口。

package com.journaldev.sort;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class JavaSortListObject {

public static void main(String[] args) {

List dl = new ArrayList<>();

dl.add(new Data(2));

dl.add(new Data(3));

dl.add(new Data(1));

System.out.println("Original List::"+dl);

Collections.sort(dl);

System.out.println("Naturally Sorted List::"+dl);

}

}

class Data implements Comparable {

private int id;

public Data(int i) {

this.id = i;

}

@Override

public int compareTo(Data d) {

return this.id - d.getId();

}

public int getId() {

return id;

}

@Override

public String toString() {

return "Data{"+this.id+"}";

}

}

输出:

Original List::[Data{2}, Data{3}, Data{1}]

Naturally Sorted List::[Data{1}, Data{2}, Data{3}]

Sort a List in Java using Comparator

Collections.sort()方法是overloaded,我们也可以实现自己的Comparator按自定义排序规则。

由于Comparator是功能性接口,我们可以用一行lambda表达式来实现。

Collections.sort(dl, (d1, d2) -> {

return d2.getId() - d1.getId();

});

System.out.println("Reverse Sorted List using Comparator::" + dl);

Summary

集合类的sort()方法用于对Java中的列表进行排列。我们可以对列表进行排序,其中列表中的元素必须实现Comparable接口。我们还可以通过Comparator来定义排序规则。

程序员灯塔

转载请注明原文链接:Java中如何对List排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值