我有2条记录是标题。
示例
记录1:我的标题
记录2:我的另一个标题
我需要使用Hashtable将它们存储到ArrayList中。
这就是我的工作。
package com.Testing;
import java.util.Hashtable;
import java.util.ArrayList;
import java.util.Dictionary;
public class AnotherClass {
private Hashtable <String, String> items = new Hashtable <String, String>();
private ArrayList <Hashtable <String, String>> finalArray = new ArrayList <Hashtable <String, String>>();
public ArrayList <Hashtable <String, String>> returnArray() {
return finalArray;
}
public void adding() {
this.items.put("Record", "Record 1");
this.items.put("Format", "My Title");
this.finalArray.add(items);
this.items.put("Record", "Record 2");
this.items.put("Format", "My ANOTHER Title");
this.finalArray.add(items);
}
}
当我通过遍历arraylist打印我的项目结果时,它只显示第二条记录。
任何建议让它显示两个记录?
谢谢!
答案 0 :(得分:4)
在创建第一个和第二个记录之间,输入:
this.items = new Hashtable <String, String>();
问题在于您正在为两个记录重复使用相同的哈希表。
此外,您最近应该使用HashMap而不是Hashtable,并且应该使用最广泛的有用类型(这里的意思是List而不是ArrayList)和Map而不是Hashtable或HashMap来声明变量。没有必要在变量的类型中描述实现类;这是一个你在使用变量时不需要知道的细节,所以它只是杂乱无章。
答案 1 :(得分:2)
您将同一哈希表的引用放入finalArray
两次。更改哈希表时,您会看到更改会影响finalArray
的两个元素。
答案 2 :(得分:0)
您为两个记录插入了相同的Hashtable。当您插入第二条记录时,您将覆盖第一条记录的值,因此您将获得第二条记录。