使用ArrayList的麻烦

时间:2012-06-18 07:44:11

标签: java arraylist

我在ArrayList中存储对象时遇到问题。

我想使用名为ArrayList的简单对象填充Variable。它有2个字符串属性:name和value。问题是当我向列表添加新的Variable对象时,先前添加的Variable对象的属性似乎为空。此外,不是将其添加到列表的末尾,而是将新对象插入第一个位置。

以下是代码:

ArrayList<Variable> variables = new ArrayList<Variable>();

Variable author = new Variable();
author.setName("Author");
author.setValue("lusyo"); 

variables.add(author);

System.out.println(variables.get(0).getName());

Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login"); 

variables.add(scenario);

System.out.println(variables.get(0).getName());
System.out.println(variables.get(1).getName());

输出结果为:

Author
Scenario
null

如您所见,scenario位于索引0处,但不应该如此。我无法弄清楚这段代码发生了什么。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");

有什么事打扰你吗? :)

答案 1 :(得分:3)

您正在设置作者变量属性两次:)一旦到达

Variable author = new Variable();
author.setName("Author");
author.setValue("lusyo"); 

以后:

Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login"); 

但是你从未设置场景属性。

试试这个:

Variable scenario = new Variable();
scenario.setName("Scenario");
scenario.setValue("Login"); 

答案 2 :(得分:3)

错误就在那里,你会找到它:

Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");