J'écris un texte d'édition simple en Java. Lorsque l'utilisateur l'ouvrira, un fichier sera ouvert dans JTabbedPane
. J'ai fait ce qui suit pour sauvegarder les fichiers ouverts:
HashMap<String, Tab> hash = new HashMap<String, Tab>();
Où Tab
recevra les valeurs, telles que: File file, JTextArea container, JTabbedPane tab
.
J'ai une classe appelée Tab
:
public Tab(File file, JTextArea container, JTabbedPane tab)
{
this.file = file;
this.container = container;
this.tab = tab;
tab.add(file.getName(), container);
readFile();
}
Maintenant, dans cette classe SaveFile
, j’ai besoin d’obtenir les valeurs Tab
stockées dans HashMap
. Comment puis je faire ça?
Pour obtenir toutes les valeurs d'une carte:
for (Tab tab : hash.values()) {
// do something with tab
}
Pour obtenir toutes les entrées d'une carte:
for ( Map.Entry<String, Tab> entry : hash.entrySet()) {
String key = entry.getKey();
Tab tab = entry.getValue();
// do something with key and/or tab
}
Pour traiter toutes les valeurs:
hash.values().forEach(tab -> /* do something with tab */);
Pour traiter toutes les entrées:
hash.forEach((key, tab) -> /* do something with key and tab */);
Vous donnez 1 dollar, cela vous donne un burger au fromage. Vous donnez la chaîne et elle vous donne l'onglet. Utilisez la méthode GET de HashMap pour obtenir ce que vous voulez.
HashMap.get("String");
Vous pouvez utiliser itérateur pour le faire:
Pour les clés:
for (Iterator <tab> itr= hash.keySet().iterator(); itr.hasNext();) {
// use itr.next() to get the key value
}
Vous pouvez utiliser l'itérateur de la même manière avec les valeurs.
Utilisez la clé 'chaîne' du hashmap pour accéder à sa valeur qui est votre classe d'onglets.
Tab mytab = hash.get("your_string_key_used_to_insert");
Avec l'API de streaming Java8:
List values = map.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList());
Cela fonctionnera avec hash.get ("clé"); Où key est la clé pour obtenir la valeur de Map
Vous devez suivre la séquence d'opeartions suivante:
Map
en MapSet
avec map.entrySet();
Mapset.iterator();
Map.Entry
avec iterator.next();
Entry.getKey()
et Entry.getValue()
# define Map
for (Map.Entry entry: map.entrySet)
System.out.println(entry.getKey() + entry.getValue);
for (Map.Entry<String, Tab> entry : hash.entrySet()) {
String key = entry.getKey();
Tab tab = entry.getValue();
// do something with key and/or tab
}
Fonctionne comme un charme.
Pour obtenir des valeurs et des clés .__, vous pouvez simplement utiliser les méthodes values () et keySet () de HashMap
public static List getValues(Map map) {
return new ArrayList(map.values());
}
public static List getKeys(Map map) {
return new ArrayList(map.keySet());
}