2

個人IDをキーとして、個人オブジェクトを値として含むハッシュマップがあります。

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

person オブジェクト (マップの値) には、ユーザー入力と比較したい person Id インスタンス変数が含まれています。私の考えは、ここで述べたように、マップの値から配列リストを作成することです - How to convert a Map to List in Java? 、したがって、arraylist.contains(userInput) かどうかを確認できます。

ただし、Person.getPersonId() を含む文字列の配列リストが必要です。ここで助けてください。ワンステップでできますか?より良い代替案がある場合は、提案してください。

4

2 に答える 2

5

Personまず、から値を取得する必要がありますpersonMap

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 に答える