我有選擇性地將數據添加到地圖類似下面的代碼,從列表中刪除元素根據病情
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Johnny", "Depp", 18),
new Person("Jennifer", null, 30),
new Person("Angelina", null, 23),
new Person("Angelina", "Garlic", 38),
new Person("Angelina", "Jolie", 40),
);
Map<String, Person> map = new HashMap<>();
for (Person person:
people) {
Person temp = map.get(person.getFirstName());
if(temp == null || temp.getLastName() == null)
map.put(person.getFirstName(), person);
}
for (Map.Entry mapper:
map.entrySet()) {
Person temp = (Person) mapper.getValue();
System.out.println(temp.getFirstName());
System.out.println(temp.getLastName());
System.out.println();
}
}
Person.java包含以下內容:
public class Person {
String firstName;
String lastName;
int age;
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
現在,我需要檢查以下條件, 1)地圖是否有多個記錄具有相同的名字;如果記錄的姓名爲空,那麼它應該將此記錄添加到地圖中。 2)如果地圖只有一個人的名字記錄;如果該記錄的姓氏爲空,則它有資格添加到地圖中。
所以輸出爲我的目前的解決方案是,
約翰尼 ·德普
詹妮弗 空
安吉麗娜 大蒜
凡爲我所需的輸出應該是,
約翰尼 ·德普
詹妮弗 空
安吉麗娜 大蒜
安吉麗娜 朱莉
注意:我正在使用的Java 7的(不,JAVA 8是不是一種選擇)
我想你的意思是,如果有多個記錄與samme的名字和一個有空的姓氏,那麼它應該*不*被添加? –
我不明白這個問題的標題。根據條件從列表中刪除元素有什麼作用? –