我只是在使用流玩Java8
中的groupingBy。我无法根据fruite的名称对水果进行排序,我还想根据fruite的名称进行排序(//1.1==>按列表分组并显示其总数)
public class StreamCollectorsGroupingByDemo {
public static void main(String[] args) {
List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "banana", "papaya");
// 1.1== >Group by a List and display the total count of it
Map<String, Long> result = items.stream()
.sorted()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println("RESULT : "+result);
// 1.2 Add sorting
Map<String, Long> finalMap = new LinkedHashMap<>();
result.entrySet().stream()
.sorted(Map.Entry.<String, Long> comparingByValue()
.reversed())
.forEachOrdered(e -> finalMap.put(e.getKey(), e.getValue()));
System.out.println("FINAL RESULT : "+finalMap);
}
}
输出为:
RESULT : {papaya=1, orange=1, banana=2, apple=3}
FINAL RESULT : {apple=3, banana=2, papaya=1, orange=1}
我想要如下所示的输出
RESULT : {apple=3,banana=2, orange=1,papaya=1}
您只需使用供应商
,该供应商将使用此版本的重载方法GroupingBy
为您创建LinkedHashMap
:
Map<String, Long> result = items.stream()
.sorted()
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting()));
System.out.println("RESULT : "+result);
现在的输出是:
RESULT : {apple=3, banana=2, orange=1, papaya=1}
FINAL RESULT : {apple=3, banana=2, orange=1, papaya=1}
根据以下答案:https://stackoverflow.com/a/30202075/8760211 如何按stud\u id对每个组进行排序,然后返回一个包含所有学生的列表,作为按stud\u位置分组的结果,然后按stud\u id排序)? 将此作为现有Lambda表达式的扩展将非常好: 我需要根据原始列表中元素的顺序进行分组。 结果如下所示: 我尝试了以下方法: 但这行不通。
主要内容:1 Java8 并行数组排序的介绍,2 Java8 并行数组排序的方法,3 Java8 并行数组排序案例1,4 Java8 并行数组排序案例21 Java8 并行数组排序的介绍 Java在Array类中提供了一个新的附加功能,该功能用于对数组元素进行并行排序。java.util.Arrays包中添加了新方法,该方法使用JSR 166 Fork / Join并行公共池对数组进行并行排序。被称为parallelSort() ,并且对所有原始数据类型和Comparable对象都进行了重载。
问题内容: 给定以下数据框 我想按的总和对分组()进行排序,然后按(不对)的值进行分组。所以基本上得到组的顺序 然后通过对/错,最终看起来像这样: 如何才能做到这一点? 问题答案: Groupby A: 在每个组中,对B求和,然后使用transform广播值。然后按B排序: 通过从上方传递索引来索引原始df。这将按B值的总和对A值重新排序: 最后,使用选项保留“ A”组中的“ C”值,以保留步骤1
使用以下代码: 我得到: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23。 我想做的是每 10 个项目中断一次行,以便获得: 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23. 我在谷歌搜索后尝试了很多事情,但都没有成功!你能帮助我吗? 谢谢 奥
我有下面的代码- 是包含int属性的类对象列表-参考号:即
我有map,我想有一个列表,它按键的对应值排序(最小到最大)。我的尝试是: