2014-01-05 2 views
0

Я работаю над небольшим проектом, в котором я хочу, чтобы следующее произошло: я хочу, чтобы уметь описать слова таким образом, чтобы я мог чтобы получить обе части информации позже. Использование массива String кажется, что это потребует много времени, и, кстати, я интерпретирую то, что я читаю, использование следующего фрагмента кода дает мне вторую письменную информацию, которая является «Описание примера». он отображает второе значение в первое «значение» (которое является «ключом»).Java - Сопоставление описания слова с помощью карты/HashMap

Map<String, String> exampleDictionaryThing = new HashMap<String, String>() {{ 
    put("Example Word", "Example Description."); 
}}; 

Просто, чтобы убедиться, что я понял, что английский язык не является на самом деле моим лучшим языком, я пытаюсь сделать кучу подобного словаря вещей, где я могу захватить оба части информации , две части информации. являясь словом и описанием для него, но выполнение множества массивов String было бы A) занимать много времени, а B) было бы, как мне кажется, невероятно неэффективным способом решения этой проблемы.

У кого-нибудь есть идеи?

Update # 1

Я знал, что моя формулировка может вызвать путаницу; извините xD. Из того, что я читал о том, как я это делаю, строка кода, приведенная выше, позволяет мне получить доступ к «Примеру описания». если я вызываю функцию get(). Мне нужно что-то хранить две строки и дать мне доступ к обоим (надеюсь) без использования массива String. Мой вопрос: как я могу хранить две строки таким образом?

+0

Во-первых, нет 'String []' в поле зрения. Во-вторых, то, что вы описываете (и соглашаетесь быть идеальным решением), - это то, что вы реализовали, - «Ключ» ключевых слов «String» к значениям «String». Тем не менее, я не совсем понимаю, каков ваш вопрос - вам интересно, идеально ли это? Мы не можем ответить на это, поскольку мы не знаем полного контекста того, что вы делаете. Почему бы вам не попробовать и посмотреть, как это работает для вас? – Makoto

+0

Вы можете перебирать записи в «Карта». –

+0

Можете ли вы сформулировать свой вопрос в одной строке? Я понятия не имею, о чем вы спрашиваете. –

ответ

1

Если у вас есть

HashMap<String, String> mp = new HashMap<String, String>(); 

который правильно заполняется (в основном в том, как вы описали), вы можете сделать следующее, чтобы итерацию через него (таким образом, у вас есть ключ и значение в ваш цикл):

for (String word : mp.keySet()){ 
     System.out.println("Word: [" + word + "]; Word Description: [" + mp.get(word) + "]."); 
    } 
0

Если вы хотите, чтобы «получить обе части информации позже», как вы говорите, может быть, вы должны смотреть на BiMap гуавы в. Эта структура данных позволит вам восстановить описание с учетом слова или наоборот.

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html

Смежные вопросы