java中如何对List中的数据进行排序呢?
下文笔者讲述对实现list接口的自定义类的排序方法分享,如下所示:
实现思路: 方式1: 使用Collections类中的java.util.Collections.sort(java.util.List, java.util.Comparator) 方法(传入一个自定义比较器对对象进行排序) 方式2: 为类实现一个Comparable接口对list实现排序例:
package com.java265.other; import java.util.ArrayList; import java.util.Collections; import java.util.List; class User2 implements Comparable { public int height; public String name; public User2() { } public User2(int height, String name) { this.height = height; this.name = name; } @Override public int compareTo(Object o) { return this.height - ((User2) o).height; } @Override public String toString() { return "User2 [height=" + height + ", name=" + name + "]"; } } public class Test2 { /* * java265.com 自定义类的排序方法分享 */ @SuppressWarnings("unchecked") public static void main(String[] args) { List<User2> list = new ArrayList<>(); list.add(new User2(10, "java265.com")); list.add(new User2(1, "java265.com-1")); list.add(new User2(20, "java265.com-20")); list.add(new User2(30, "java265.com-30")); // 排序方式1 Collections.sort(list); System.out.println(list); System.out.println("----------"); // 排序方式2 Collections.sort(list, (o1, o2) -> { return ((User2) o2).height - ((User2) o1).height; }); System.out.println(list); } } -------运行以上代码,将输出以下信息------ [User2 [height=1, name=java265.com-1], User2 [height=10, name=java265.com], User2 [height=20, name=java265.com-20], User2 [height=30, name=java265.com-30]] ---------- [User2 [height=30, name=java265.com-30], User2 [height=20, name=java265.com-20], User2 [height=10, name=java265.com], User2 [height=1, name=java265.com-1]]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。