我正在用Java创建哈希映射。我正在从文本文档中提取键和值。该文档具有相同的键,格式为37 = 1904、527 = 9999、54 = 7,等等。现在我有了此代码。
Map<Integer,String> hm1 = new HashMap<Integer,String>();
String[] tokens = line.split("");
for (int i = 0; i != tokens.length; i++) {
int dataIndex = tokens[i].indexOf('=') + 1;
String data = tokens[i].substring(dataIndex);
hm1.put(new Integer(i),data);
当值以相同的精确顺序逐行放入哈希表时,这样做非常有用。当它们无序时,它们仍然返回一个值,但不返回与键关联的值。例如,有时527 = 9999将是第二组数字,有时将是第十组数字,但是使用我的哈希映射配置方式,它不会返回我想要的值。我可以做些什么改变,以便哈希图要么对键和值进行排序,要么仅返回值,但仅在我获得特定键而不是按顺序时返回。
我当时在考虑制作一个属性文件,但是为了使哈希图从属性文件中提取,属性文件必须从文本文档中填充什么结构。
答案 0 :(得分:1)
您似乎想要维持Map
中的插入顺序。
在这种情况下,您需要使用LinkedHashMap:
Map<Integer, String> hm = new LinkedHashMap<Integer, String>();