2

我有一个哈希图,其中包含人员 ID 作为键,人员对象作为值。

Map<String, Person> personMap = new HashMap<String,Person>();

person 对象(地图的值)包含我想与用户输入进行比较的 person Id 实例变量。我的想法是从这里提到的地图值创建一个数组列表 -如何在 Java 中将地图转换为列表?,所以我可以检查arraylist.contains(userInput)。

但是,我需要一个包含 Person.getPersonId() 的字符串数组列表,请在这里帮助我。我可以一步完成吗?如果有更好的选择,请提出建议。

4

2 回答 2

5

首先,您需要PersonpersonMap.

List<Person> persons =personMap.values();

要获取包含 Person.getPersonId() 的字符串数组列表,您需要执行以下步骤。

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());
  }
}
于 2013-11-03T06:20:45.443 回答
0

试试这个:

List<Person> personList = new ArrayList<>(personMap.values());
List<String> idList = personList.stream().map(Person::getPersonId).collect(Collectors.toList());
于 2016-12-21T03:51:38.927 回答