Java中如何对LinkedList排序呢?
下文笔者讲述对Linkedlist对象进行排序的方法分享,如下所示:
实现思路: 方式1: 继承Comparable接口创建一个内部比较器 方式2: 创建一个外部比较器,然后传入sort方法中或传入LinkedList构造器中例:
package com.java265.other; import java.util.Collections; import java.util.LinkedList; 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 LinkedList<>(); 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]]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。