如何使用 Java-8 Streams 将列表转换为映射,其中 Key 是 ListValue,Value 是该特定列表的值的数量

san*_*ons 6 java java-8

这是我的清单:

List<Card> cards;
Run Code Online (Sandbox Code Playgroud)

我想在其中创建地图的 Java-8 流

Map<String, Integer> cardsMap = cards.stream().collect(Collectors.groupingBy(Card::getCardValue, amount of cards that are grouped));
Run Code Online (Sandbox Code Playgroud)

这显然行不通,但我不知道否则我会如何做。

Ole*_*.V. 9

这是你的意思吗?

\n\n
    Map<String, Long> cardsMap = cards\n            .stream()\n            .collect(Collectors.groupingBy(Card::getCardValue, Collectors.counting()));\n
Run Code Online (Sandbox Code Playgroud)\n\n

它将为您提供从卡片值到原始列表中具有该值的卡片数量的映射。例如,如果您有:

\n\n
    List<Card> cards = Arrays.asList(new Card("4"), new Card("8"), new Card("4"));\n
Run Code Online (Sandbox Code Playgroud)\n\n

(我知道 I\xe2\x80\x99ve 可能减少了你的Card()构造函数),上面将映射"4"到 2 和"8"1。

\n