Put map's value in a list
我有一个hashmap,其中包含person Id作为键,person对象作为value。
person对象(map的值)包含我想与用户输入进行比较的人物Id实例变量。 我的想法是从这里提到的地图值创建一个arraylist - 如何将Map转换为Java中的List?所以我可以检查arraylist.contains(userInput)。
但是,我需要一个包含Person.getPersonId()的字符串的arraylist,请在这里帮助我。 我可以一步到位吗? 如果有更好的替代方案,请建议。
首先,您需要从
1 | List<Person> persons =personMap.values(); |
要获取包含Person.getPersonId()的字符串的arraylist,您需要执行以下步骤。
1 2 3 4 5 6 | 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()); } } |
试试这个:
1 2 | List<Person> personList = new ArrayList<>(personMap.values()); List<String> idList = personList.stream().map(Person::getPersonId).collect(Collectors.toList()); |