java 保存代码_用Java语言保存Java流中的命令

我遇到了一个问题,我需要在对字符串列表执行的操作中保留顺序,并使用

collect

方法从Java流API。

public List countOccurrences(ArrayList messages) {

List stackedMessages = new LinkedList<>();

HashMap messageOccurrences =

messages.stream()

.collect(groupingBy(Function.identity(), summingInt(e -> 1)));

messageOccurrences.forEach((key, value) -> {

String appendString = value == 1 ? "" : " (" + value + " times)";

stackedMessages.add(key + appendString);

});

return stackedMessages;

}

上面代码的问题是如果我处理

["blah", "blah", "yep"]

它回来了

["yep", "blah (2 times)"]

我需要它回来的地方

["blah (2 times)", "yep"]

.

我想我需要改变

groupingBy

toMap

从现在起,我正在阅读这些文件。任何精通这一主题的人都请提出一些建议。

更新:

感谢用户@aomin¨,这是使用groupingby的正确方法

.collect(groupingBy(Function.identity(),LinkedHashMap::new, summingInt(e->1)))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值