Хеш-карта, неупорядоченные ключи - PullRequest
0 голосов
/ 28 июня 2018

Я делаю хэш-карту на 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 голосов
/ 28 июня 2018

Похоже, что вы хотите сохранить порядок вставки в Map. В этом случае вам нужно использовать LinkedHashMap :

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