Java 放置地图';列表中的值
我有一个hashmap,其中包含:person Id作为键,person对象作为值Java 放置地图';列表中的值,java,Java,我有一个hashmap,其中包含:person Id作为键,person对象作为值 Map<String, Person> personMap = new HashMap<String,Person>(); Map personMap=newhashmap(); person对象(映射的值)包含一个person Id实例变量,我想与用户输入进行比较。我的想法是根据这里提到的映射值创建一个arraylist-,这样我就可以检查arraylist.contains是否包含
Map<String, Person> personMap = new HashMap<String,Person>();
Map personMap=newhashmap();
person对象(映射的值)包含一个person Id实例变量,我想与用户输入进行比较。我的想法是根据这里提到的映射值创建一个arraylist-,这样我就可以检查arraylist.contains是否包含(userInput)
但是,我需要一个包含Person.getPersonId()的字符串数组列表,请在这里帮助我。我能一步完成吗?如果有更好的选择,请建议。首先,您需要从
personMap
获取Person
值
List<Person> persons =personMap.values();
List persons=personMap.values();
要获取包含Person.getPersonId()的字符串的arraylist,需要执行以下步骤
List<String> personIds=new ArrayList<>();
for(Person p: persons){ // Iterate over persons List
if(p.getPersonId()!=null){ //Check the personId from Person
personIds.add(p.getPersonId());
}
}
List personIds=new ArrayList();
对于(personp:persons){//遍历persons列表
如果(p.getPersonId()!=null){//请从Person检查personId
add(p.getPersonId());
}
}
试试这个:
List<Person> personList = new ArrayList<>(personMap.values());
List<String> idList = personList.stream().map(Person::getPersonId).collect(Collectors.toList());
List personList=newarraylist(personMap.values());
List idList=personList.stream().map(Person::getPersonId.collect(Collectors.toList());
为什么要将值转换为数组列表
?你只是想在地图上找到一把钥匙吗?您不能仅使用get
来执行此操作吗?是的-您可以验证Map
中的String
键实际上是否与person
对象上的personId
字段相同吗?如果是这样的话,那么所有这些列表内容都是完全向后的,没有必要的-你完全忽略了Map
Hi的预期功能,他想要的是IdHi Danh和Mani的list
,答案被修改了。谢谢