猿问

如何从 Java 中的 List<String[]> 中获取具有频率的唯一值?

我想从 a 中获取唯一值List<String[]>并将它们存储在一个新列表中(或者唯一值在HashMap<String, Integer>哪里以及它在 中出现的次数。如何提取唯一值?StringIntegerList<String[]>

Helenr
浏览 87回答 2
2回答

长风秋雁

您可以使用Collectors.groupingByMap<String,&nbsp;Long>&nbsp;map&nbsp;=&nbsp;abc.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.flatMap(Arrays::stream) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.groupingBy(Function.identity(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collectors.counting()));

RISEBY

如果您使用 Java 8 或更高版本,这非常简单。(使用其他答案稍作修正)List<String[]> abc = new ArrayList<>();String[] string1 = {"123", "567"};String[] string2 = {"123", "456"};abc.add(string1);abc.add(string2);List<String> newList = abc.stream()&nbsp; &nbsp; &nbsp; &nbsp; .flatMap(Arrays::stream)&nbsp; &nbsp; &nbsp; &nbsp; .distinct()&nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toList());Map<String, Long> hashMap = abc.stream()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(Arrays::stream)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
随时随地看视频慕课网APP

相关分类

Java
我要回答