java - 与 JAVA 中的 ArrayList 不同的值
问题描述
我有以下 ArrayLists: 1)List<MAP<String,String>>
在 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 )。
推荐阅读
- c# - MessagePackObject 不是属性类。这是正确的,反编译表明它不是
- nlp - 将品牌识别为实体的训练模型
- docker - Docker 和 AWS ECS 服务如何交互?
- camera - libGDX 中的视差效果抖动
- sql - PostgreSQL 函数返回多个不同的数据集
- maven - 多模块项目中的内部依赖声明
- java - 未经检查的强制转换警告:接口作为返回值,存储在实现所述接口的类中
- amazon-s3 - 使用 Boto3 Python 将文件从一个 s3 文件夹传输到另一个 s3 文件夹
- sequelize.js - Sequelize 中总是急切的加载关系
- javascript - 在 C# 中将引号添加到字符串以使其成为 JSON