次のコードは、List を使用して重複をチェックします。
public List<Person> getGroupMembers() {
final List<Person> persons = new ArrayList<Person>(groupMembers.size());
for (GroupMember member : groupMembers) {
if (member.getPerson() != null && !member.getPerson().isDeleted()) {
persons.add(member.getPerson());
for (int i = 0; i < persons.size(); i++) {
for (int j = i + 1; j < persons.size(); j++) {
if (persons.get(i).equals(persons.get(j))) {
persons.remove(j);
i = 0;
}
}
}
}
}
return persons;
}
**Now for checking the duplicity I have to use Set Collection and convert it to List
そのために、以下のように変更しました**
public List<Person> getGroupMembers() {
final List<Person> persons = new ArrayList<Person>(groupMembers.size());
final HashSet<Person> setPersons = new HashSet<Person> ();
for (GroupMember member : groupMembers) {
if (member.getPerson() != null && !member.getPerson().isDeleted()) {
setPersons.add(member.getPerson());
persons.addAll(setPersons);
}
}
return persons;
}
ただし、上記のコードは期待どおりに機能しません。提案してください