使用 Lambda 表达式,我想使用 Java 语言按整数值排序

Ash*_*vin 2 java lambda

使用 Lambda 表达式,我想使用 Java 语言对整数值进行排序

public class Test_LAMBDA_Expression {

public static void main(String[] args) {

    List<Test_Product> list= new ArrayList<Test_Product>();

    list.add(new Test_Product(1,"HP Laptop",25000f));  
    list.add(new Test_Product(2,"Keyboard",300f));  
    list.add(new Test_Product(2,"Dell Mouse",150f));
    list.add(new Test_Product(4,"Dell PC",150f));
    list.add(new Test_Product(5,"Dell Printer",150f));


    System.out.println("Sorting by name");

    Collections.sort(list,(p1,p2)->{
        return p1.name.compareTo(p2.name);
    });

    for(Test_Product p: list){
        System.out.println(p.id+" "+p.name+" "+p.price);
     }
  }

}
Run Code Online (Sandbox Code Playgroud)

现在我想使用 id 进行排序。我怎样才能做到这一点?

Tho*_*sch 5

您可以使用(假设id是一个int):

Collections.sort(list, Comparator.comparingInt(p -> p.id));
Run Code Online (Sandbox Code Playgroud)

  • 或者`list.sort(Comparator.comparingInt(p -&gt; p.id));`,但在最近的JRE中,两者都会以相同的代码结束。 (4认同)
  • 为什么比这更复杂?它不仅比其他答案更简单、更短,而且更不容易出错。 (2认同)