【发布时间】:2015-06-30 20:03:42
【问题描述】:
我正在创建一个扑克等级求解器,我必须计算一组卡片中具有相同花色或相同等级的卡片。在这里,我创建HashMap 并在集合中有多个等级时增加值。
private boolean isFourOfAKind() {
Map<RANK, Integer> rankDuplicates = new HashMap<>();
for(Card card : cards) {
rankDuplicates.put(card.getRank(), rankDuplicates.getOrDefault(card.getRank(), 0) + 1);
}
return rankDuplicates.containsValue(4);
}
我想知道是否可以使用流与 java 流做完全相同的事情。它看起来像这样:
private boolean isFourOfAKind() {
Map<RANK, Integer> rankDuplicates = cards.stream()
.map(Card::getRank)
.collect(Collectors.toMap(/*...something goes here..*/)); // of course this is very wrong, but you can see what I'm aiming at.
return rankDuplicates.containsValue(4);
}
【问题讨论】:
标签: java hashmap java-8 java-stream