在ArrayList中,我拥有相同类型的对象。每个对象都有一个ID,名称和编号作为其字段。有可能多个对象具有相同的电话号码。我怎样才能使ArrayList的所有ArrayList对象具有不同的电话号码?从数组列表中删除项目
0
A
回答
0
1
覆盖您的班级方法equals()
和hashCode()
。在平等你会比较电话号码。也从您的电话号码生成哈希码。
现在您已准备好使用Set
界面,该界面将自动通过电话号码比较您的对象并排除重复项。下面
例如:
public class Test {
private int id;
private String name;
private String phoneNumber;
public Test(int id, String name, String phoneNumber) {
this.id = id;
this.name = name;
this.phoneNumber = phoneNumber;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Test test = (Test) o;
return phoneNumber.equals(test.phoneNumber);
}
@Override
public int hashCode() {
return phoneNumber.hashCode();
}
}
现在代替使用List<Test> arr = ArrayList<Test>()
,使用Set<Test> mySet = new HashSet<Test>()
。
+0
'hashCode()'只在'HashSet'情况下才方便,否则我觉得'equals()'应该足够了 – sanbhat
0
我想到的第一个解决方案是使用HashMap
。
只需创建一个HashMap,其中'phonenumber'作为键和对象作为值。添加完所有元素后,您将获得具有唯一电话号码的对象列表。只需遍历这个来创建你需要的List。
相关问题
- 1. 从阵列中删除项目数组
- 2. 从列表中删除项目后刷新数组列表
- 3. 从数组中删除列表项MongoDB
- 4. 从数组中删除数组项目
- 5. 从列表中删除项目而不从数据源中删除项目 - c#
- 6. 从阵列列表中删除项目
- 7. 从JavaScript中移除项目从数组中删除项目
- 8. 如何从数组列表中删除项目Java eclipse
- 9. 从列表中删除项目不从RecyclerView中删除它们?
- 10. 从列表视图中删除项目
- 11. Python从列表中删除项目
- 12. 从列表框中删除项目
- 13. 从方案列表中删除项目
- 14. 从列表中删除项目jquery li
- 15. 从列表中删除项目Ionic
- 16. Android Firebase从列表中删除项目
- 17. 从列表中删除项目
- 18. Python - 从列表中删除项目
- 19. 从列表中删除项目?
- 20. 未从列表中删除的项目
- 21. 无法从列表中删除项目?
- 22. 从列表中删除项目RemoveAll
- 23. 从通用列表中删除项目
- 24. 从列表中删除项目
- 25. 从列表中删除一个项目
- 26. 如何从列表中删除项目
- 27. 从链接列表中删除项目
- 28. 如何从列表中删除项目?
- 29. Sharepoint REST - 从列表中删除项目
- 30. 从列表中删除项目
比方说,你有'objA'和'objB'具有相同的电话号码。 'objA'被添加到'ArrayList'中,然后'objB'''想要'被添加到'ArrayList'中。 'objB'会发生什么?它不会被“接受”*(添加)*?好奇而已。 – Christian
将被添加 – irfan
但是,在ArrayList中将会有两个具有相同'phone-number'的对象。我认为这不符合你的预期。 – Christian