使用自定义比较器对Java8中的ArrayList进行排序
我有一个使用自定义比较器对Java8中的ArrayList进行排序,java,Java,我有一个Customer类,如下所示: public class Customer{ Integer age; String name; } 我想实现一个自定义排序逻辑,它将 将50岁的客户放在首位 然后是年龄50 Java数组列表如下所示 Customer c1 = new Customer(10, "Ramesh") Customer c2 = new Customer(30, "Mahesh") Customer c3 = new
Customer
类,如下所示:
public class Customer{
Integer age;
String name;
}
我想实现一个自定义排序逻辑,它将
将50岁的客户放在首位然后是
年龄<50
和然后
年龄>50
Java数组列表如下所示
Customer c1 = new Customer(10, "Ramesh")
Customer c2 = new Customer(30, "Mahesh")
Customer c3 = new Customer(50, "Suresh")
Customer c4 = new Customer(70, "John")
Customer c5 = new Customer(80, "Doe")
多种选择之一:
Comparator<Customer> comparator = Comparator.comparingInt(o -> o.age==50 ? 1 : o.age<50 ? 2 : 3);
Comparator Comparator=Comparator.comparingit(o->o.age==50?1:o.age为了将特定的年龄50移到顶部,并保持其他年龄按其自然顺序排序(0<10<20<50<60<70),使用此比较器是合适的:
Comparator.comparingit(c->c.age==50?-1:c.age)
:
List cust=Arrays.asList(
新客户(30,“Ramesh”),
新客户(20,“Mahesh”),
新客户(50,“Suresh”),
新客户(80,“约翰”),
新客户(60,“Doe”)
);
Collections.sort(cust、Comparator.comparingit(c->c.age==50?-1:c.age));
cust.forEach(System.out::println);
输出:
{name = Suresh, age=50}
{name = Mahesh, age=20}
{name = Ramesh, age=30}
{name = Doe, age=60}
{name = John, age=80}
这是语言基础。看看这里的例子,到目前为止你都做了些什么!?