![](/img/trans.png)
[英]Java ArrayList: Get Distinct Values from ArrayList which contain HashMap
[英]Distinct value from ArrayList in JAVA
我有以下ArrayLists:1) List<MAP<String,String>>
in 2) ArrayList<>()
:
[
[{name=a,age=33,city=NY},{name=b,age=23,city=NY},{name=d,age=83,city=CA}],
[{name=f,age=53,city=FL}],
[{name=d,age=11,city=TX},{name=a,age=13,city=CA}],
]
我想获得新的ArrayList,其名称具有不同的值,例如:
[{a},{b},{d},{f}]
你可以协助:)吗?
您可以遍历集合并将其添加到哈希集以获取唯一名称。
List<Map<String,String>> input = new ArrayList<>();
Set <String> uniqueNames = new HashSet<>();
for( Map<String, String> stringStringMap : input )
uniqueNames.add(stringStringMap.get("name"));
或者在Java8中,可以使用流在一行中完成
Set<String> uniqueNames = input.stream().map(a -> a.get("name")).collect(Collectors.toSet());
然后,您可以使用set创建一个ArrayList(就像您提到的ArrayList一样)。
使用Java 8,您可以执行
//List<Map<String, String>> inList = new ArrayList<>();
List<String> outList = inList.stream().map(m -> m.get("name")).distinct().collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.