List集合排序Demo
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import java.util.*;
public class ListOrderDemo {
public static void main(String[] args) {
List<String> list = Lists.newArrayList("1","3","2");
String[] array = list.toArray(new String[]{});
System.out.println(Arrays.toString(array));
list.sort(String::compareTo);
System.out.println(list);
list.sort((o1, o2) -> o1.compareTo(o2));
System.out.println(list);
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
System.out.println(list);
list.sort(Comparator.reverseOrder());
System.out.println(list);
list.sort((o1, o2) -> o2.compareTo(o1));
System.out.println(list);
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
System.out.println(list);
List<Order> orders = new ArrayList<>();
orders.add(new Order("4", 1));
orders.add(new Order("3", 2));
orders.add(new Order("2", 2));
orders.add(new Order("1", 3));
orders.sort(Order::compareTo);
System.out.println(orders);
orders.sort((o1, o2) -> o1.compareTo(o2));
System.out.println(orders);
Collections.sort(orders);
System.out.println(orders);
}
@NoArgsConstructor
@AllArgsConstructor
public static class Order implements Comparable<Order> {
private String name;
private Integer age;
@Override
public int compareTo(Order o) {
if (Objects.equals(this.age, o.age)) {
return this.name.compareTo(o.name);
}
return this.age.compareTo(o.age);
}
@Override
public String toString() {
return "{\"age: \"" + this.age + ", \"name:\"" + this.name + "}";
}
}
}