java – 要列出的对象 – >为什么我要创建一个新对象?
发布时间:2020-12-15 05:01:09 所属栏目:Java 来源:网络整理
导读:我想了解为什么会发生以下情况: 数据类型库 public class Bank { String Blz; String Name; public String getBlz() { return Blz; } public void setBlz(String Blz) { this.Blz = Blz; } public String getName() { return Name; } public void setName(S
我想了解为什么会发生以下情况:
数据类型库 public class Bank { String Blz; String Name; public String getBlz() { return Blz; } public void setBlz(String Blz) { this.Blz = Blz; } public String getName() { return Name; } public void setName(String Name) { this.Name = Name; } } 这按预期工作: public List<Bank> getSearchResult() { List<Bank> banks = new ArrayList<>(); Bank bank = new Bank(); bank.setBlz("1"); bank.setName("Berlin"); banks.add(bank); bank = new Bank(); bank.setBlz("8"); bank.setName("München"); banks.add(bank); return banks; } 该列表有第一个Element 1 / Berlin和第二个8 /München.但这个我不明白: public List<Bank> getSearchResult() { List<Bank> banks = new ArrayList<>(); Bank bank = new Bank(); bank.setBlz("1"); bank.setName("Berlin"); banks.add(bank); //bank = new Bank(); bank.setBlz("8"); bank.setName("München"); banks.add(bank); return banks; } 如果我不创建如上所示的新对象库,则列表包含两次8 /München.为什么会这样?我不明白这一点,因为当我添加第一个元素时它包含1 /柏林.然后我覆盖值并添加第二个. 谢谢 解决方法
您正在修改现有的
List.列表允许复制,它不会阻止您添加两次具有相同值的对象.为了防止重复,您可以执行以下操作:
myHashSet = new HashSet<Bank>(bank); 然后: banks = new List<Bank>(myHashSet); Set不允许重复. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |