2015-09-20 3 views
2

Я пытаюсь вернуть ключи и значения методом массива.Возвращение значений и ключей HashMap методом массива

Я сделал это:

public ArrayList<String> translationList() { 
    for (String key : translations.keySet()) { 
     System.out.println(key + " = "); 
    } 
    return new ArrayList<String>(this.translations.values()); 
} 

И в моем Main.java

ArrayList<String> translations = dictionary.translationList(); 
for (String translation : translations) { 
    System.out.println(translation); 
} 

возвращает

apina = 
cembalo = 
banaani = 
monkey 
harpsichord 
banana 

Я не знаю, как заставить их печатать на одна и та же строка после перевода слова. Я знаю, что он печатает цикл for перед возвратом массива, но это моя проблема и не знаю, как ее решить.

+0

использование 'System.out.println ("переводы =" + переводы);' 'или внутри для- loop' use 'System.out.print (перевод); – seahawk

ответ

3

Поскольку вы получаете только значения обратно, нет способа получить ключ, основанный на значении. Поэтому, следовательно, невозможно.

Что вы можете сделать, это вернуть ключи из метода и перебрать это в свой метод.

или просто изменить свой метод

public ArrayList<String> translationList() { 
    List<String> returnList = new ArrayList<>(String); 
    for (Entry<Integer, String> entry : testMap.entrySet()) { 

       returnList.add(entry.getKey()+"="+entry.getValue()); 

     } 
    return returnList; 
} 

и в основной метод

ArrayList<String> translations = dictionary.translationList(); 
for (String translation : translations) { 
    System.out.println(translation); 
} 
+0

Я понимаю, но я не уверен, как я мог это сделать, не могли бы вы объяснить немного больше? – syntax

+0

@syntax Конечно. С учетом редактирования. Надеюсь, что поможет –

+0

Хорошо, я вижу, что сайт, на котором я занимаюсь, не научил меня методу getKey или getValue, поэтому я не знал, что использовать их. Не было бы другого способа сделать это? Спасибо за вашу помощь. – syntax

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