在Java8 Streams中排序

时间:2017-06-26 12:33:54

标签: java collections lambda java-stream

   AA {
      Float key;
      String val;
   }
   A is an object of class AA.
   Set <String> s1 = A.stream()
                      .filter(var->var.key > 5) 
                      .sort('What to do')
                      .map(A::value)
                      .collect(Collectors.toSet());

如何根据Key的值按降序对集合进行排序? 我需要根据键按照降序排列val。

2 个答案:

答案 0 :(得分:0)

试试这个:

.sort((a1, a2) -> Float.compare(a2.key, a1.key))

答案 1 :(得分:0)

尝试在这里使用比较器,

Collections.sort(s1, 
(o1,o2)-> ..//compare implementation
);

或者您可以使用

s1.stream()
     .sorted(Comparator.reverseOrder()
// or your own compare implementation)