List<Cars> allValues = new ArrayList<Cars>();
Cars obj = new Cars();
obj.setKey("merc");
obj.setValue("true");
allValues.add(policyOrg1);
obj.setKey("audi");
obj.setValue("true");
allValues.add(obj);
在这种情况下,我必须在列表中插入两个值,并且我使用的是同一对象,然后将先前设置的键和值插入到列表中,然后重置该值。但是,当重新分配对象时,我看到早先插入列表中的值已更新为最新分配的值。除了创建新对象和分配以外,任何解决此问题的方法。
以上插入的结果是,列表最后有两个条目,键为audi,值为true,它是最后插入的值。
答案 0 :(得分:0)
只需像这样编辑您的代码:
List<Cars> allValues = new ArrayList<Cars>();
Cars obj = new Cars();
obj.setKey("merc");
obj.setValue("true");
allValues.add(obj);
obj = new Cars(); // you need to create a new object here
obj.setKey("audi");
obj.setValue("true");
allValues.add(obj);
您正在做的是将一个对象添加到列表中,然后更新同一对象而不是创建一个新对象。
答案 1 :(得分:0)
我认为最好的方法是修改Cars类的构造函数,并通过构造函数传递对象的值。而且,您可以简单地在.add()方法中创建新对象。
public Cars(String key,String value){
//make your stuff here
}
var allValues = new ArrayList<Cars>();//if you have Java 11 or higher use var
allValues.add(new Cars("merc","true"));
应该可以正常工作:)