简体   繁体   English

Java stream 基于双精度值排序对象

[英]Java stream sorting objects based on the double value

I have list of X1 objects and trying to sort the list based on method obj_function() which returns Double value.我有X1对象的列表,并尝试根据返回Double值的方法obj_function()对列表进行排序。

result = custom_obj_list.stream()
    .sorted((x1,x2) -> {
        return -x1.obj_function().compareTo(x2.obj_function());
    }).filter((x2) -> { 
        return x2.obj_function <= 1; 
    }).collect(Collectors.toList());

But I'm struggling to solve the below error message但我正在努力解决以下错误消息

stream().sorted() cannot resolve symbol or cannot resolve method stream().sorted() 无法解析符号或无法解析方法

You can use the Comparator.comparing instead of lambda expression, If you just want default sorting order您可以使用Comparator.comparing代替 lambda 表达式,如果您只想要默认排序顺序

result = custom_obj_list.stream()
                        .sorted(Comparator.comparingDouble(X1::obj_function))  //X1 should be class name
                        .filter(x2 -> x2.obj_function() <= 1)
                        .collect(Collectors.toList());

or reverse sorting order或反向排序

result = custom_obj_list.stream()
                        .sorted(Comparator.comparingDouble(X1::obj_function).reverse()))   ////X1 should be class name
                        .filter(x2 -> x2.obj_function() <= 1)
                        .collect(Collectors.toList());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java 8 stream用于根据特定字段对对象列表进行排序 - java 8 stream for sorting a list of objects based on particular field 基于Java中另一个数组列表中的对象值对数组列表进行排序 - Sorting an arraylist based on objects value in another arraylist in Java Java TreeSet按值排序对象 - Java TreeSet sorting objects by value Java-对ArrayList中的对象进行排序 <Car> 基于MPG - Java - Sorting Objects in an ArrayList<Car> based on MPG 基于自定义参数Java的对象列表排序 - Sorting of List of Objects based on Custom parameter Java Java-Stream - 根据 Java 11 中的聚合计数进行分组和排序 - Java-Stream - Grouping and Sorting based on aggregate count in Java 11 根据对象字段与给定值的绝对差对对象列表进行排序。 (Java) - Sorting a List of Objects based o absolute difference of an Object's field and a given value. (Java) Java 11 Stream 对 object 的列表进行排序并根据排序添加序列 - Java 11 Stream to sort a list of object and add sequence based on sorting Java中基于动态串行有序输入流对数据进行排序和分区 - sorting and partitioning data based on dynamic serial ordered input stream in java java流列表 <Map<String,Double> &gt;需要基于字符串的平均值 - java stream List<Map<String,Double>> need average based on the string
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM