Подтвердить что ты не робот

Как получить значения. ключи от HashMap?

Я пишу простой текстовый текст в Java. Когда пользователь откроет файл, откроется в JTabbedPane. Чтобы получить файл из него. Я сделал, чтобы сохранить открытые файлы.

HashMap<String, Tab> hash = new HashMap<String,Tab>();

Где:

Tab получит значения, такие как: File file, JTextArea container, JTabbedPane tab

У меня есть класс под названием Tab:

public Tab(File file, JTextArea container, JTabbedPane tab)
{
    this.file = file;
    this.container = container;
    this.tab = tab;
    tab.add(file.getName(), container);
    readFile();

}

Теперь, в этом классе SaveFile, мне нужно получить значения, хранящиеся в HashTab, чтобы сохранить файл. Как я это делаю?

4b9b3361

Ответ 1

Чтобы получить все значения из карты:

for (Tab tab : hash.values()) {
    // do something with tab
}

Чтобы получить все записи с карты:

for ( Map.Entry<String, Tab> entry : hash.entrySet()) {
    String key = entry.getKey();
    Tab tab = entry.getValue();
    // do something with key and/or tab
}

Обновление Java 8:

Для обработки всех значений:

hash.values().forEach(tab -> /* do something with tab */);

Для обработки всех записей:

hash.forEach((key, tab) -> /* do something with key and tab */);

Ответ 2

Вы даете 1 доллар, это дает вам бургер с сыром. Вы даете строку, и она дает вам вкладку. Используйте метод GET для HashMap, чтобы получить то, что вы хотите.

HashMap.get("String");

Ответ 3

Map внутренне состоит из объектов Map.Entry. Каждый Entry содержит key и value. Чтобы получить ключ и значение из записи, вы используете методы доступа и модификатора.

Если вы хотите получить values с данным key, используйте метод get() и чтобы вставить значение, используйте метод put().

#Define and initialize map;
Map map = new HashMap();
map.put("USA",1)
map.put("Japan",3)
map.put("China",2)
map.put("India",5)
map.put("Germany",4)

map.get("Germany") // returns 4

Если вы хотите получить набор ключей с карты, вы можете использовать метод keySet()

Set keys = map.keySet();
System.out.println("All keys are: " + keys);
// To get all key: value
for(String key: keys){
    System.out.println(key + ": " + map.get(key));
}

Как правило, Чтобы получить все ключи и значения с карты, вы должны следовать последовательности в следующем порядке:

  • Преобразуйте Hashmap в MapSet, чтобы получить набор записей в Map с помощью метода entryset().:
    Set st = map.entrySet();
  • Получить итератор этого набора:
    Iterator it = st.iterator();
  • Получить Map.Entry из итератора:
    Map.Entry entry = it.next();
  • используйте getKey() и getValue() методы Map.Entry для получения ключей и значений.
// Now access it
Set st = (Set) map.entrySet();
Iterator it = st.iterator();
while(it.hasNext()){
    Map.Entry entry = mapIterator.next();
    System.out.print(entry.getKey() + " : " + entry.getValue());
}

Короче говоря, используйте итератор непосредственно для

for(Map.Entry entry:map.entrySet()){
    System.out.print(entry.getKey() + " : " + entry.getValue());
}

Ответ 4

Вы можете использовать итератор для этого:

Для клавиш:

for (Iterator <tab> itr= hash.keySet().iterator(); itr.hasNext();) {
    // use itr.next() to get the key value
}

Итератор можно использовать аналогично значениям.

Ответ 5

Используйте клавишу "строка" хэш-карты, чтобы получить доступ к ее значению, которое является вашим классом вкладок.

Tab mytab = hash.get("your_string_key_used_to_insert");

Ответ 6

Вы должны следовать следующей последовательности слов:

  • Преобразуйте Map в MapSet с помощью map.entrySet();
  • Получить итератор с Mapset.iterator();
  • Получить Map.Entry с помощью iterator.next();
  • используйте Entry.getKey() и Entry.getValue()
# define Map
for (Map.Entry entry: map.entrySet)
    System.out.println(entry.getKey() + entry.getValue);

Ответ 7

С java8 потоковым API:

List values = map.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList());

Ответ 8

for (Map.Entry<String, Tab> entry : hash.entrySet()) {
    String key = entry.getKey();
    Tab tab = entry.getValue();
    // do something with key and/or tab
}

Работает как шарм.