哈希图,无序键

时间:2018-06-28 14:22:13

标签: java text properties hashmap

我正在用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将是第二组数字,有时将是第十组数字,但是使用我的哈希映射配置方式,它不会返回我想要的值。我可以做些什么改变,以便哈希图要么对键和值进行排序,要么仅返回值,但仅在我获得特定键而不是按顺序时返回。

我当时在考虑制作一个属性文件,但是为了使哈希图从属性文件中提取,属性文件必须从文本文档中填充什么结构。

1 个答案:

答案 0 :(得分:1)

您似乎想要维持Map中的插入顺序。 在这种情况下,您需要使用LinkedHashMap

Map<Integer, String> hm = new LinkedHashMap<Integer, String>();