『壹』 java怎麼獲取map的key
java 獲取map中所有的key和value值
java.util.Iterator 對 collection 進行迭代的迭代器。
java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回對應的鍵
entry.getValue() //返回對應的值
}
以前遍歷Map key-value比較習慣的方式是先獲取Map中的所有key值,
然後根據key,依次從Map中去數據,基本方式如下:
Map<String,String> testData = new HashMap<String, String>();
Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}
上述其中是第一種方法,原來一直用上述方法主要是自己有點懶,有了一種方法後就覺得夠用的了,今天看源碼,發現還Map介面中還有一個Entry<K,V>的介面,對應的還有一個 Set<Map.Entry<K, V>> entrySet();方法。
也就是說其實Map中的每條key-value數據對應著一個Entry,這樣的話遍歷Map其實就是要取出每個Entry,也就有了第二種遍歷方法:
Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
當少量的數據時,上述兩種方法的效率是差不野改多的,當數據比較多時,第二種還是要比第一種快鉛敗。
當然上述說的兩種遍歷針對的情況是遍歷出key-value,如果是只想遍歷key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V>槐脊顫 values()。
『貳』 java Map 根據Map的值(value)取鍵(key)
java根據Map的值(value)取鍵(key) 的實現方法有4種,分別為:
(1)使用for循環遍歷
(2)使用Iterator迭代器
(3)使用KeySet迭代
(4)使用EnterySet迭代
下面為以上4種方法具體實現的代碼:
1、使用for循環遍歷
public static Object getKey(HashMap<Object,Object> map, String v) {
String key = "";
for (Map.Entry<String, Object> m :map.entrySet()) {
if (m.getValue().equals(v)) {
key = m.getKey();
}}
return key;
}
『叄』 java 怎樣通過hashmap的value得到key
java中可以使用hashmap的entry來查找key值,示例如下:
(Mapmap,Stringvalue){
Setset=map.entrySet();//新建一個不可重復的集合
ArrayListarr弊含=newArrayList<>();//新建一個集合
Iteratorit=set.iterator();//遍歷的類
while(it.hasNext()){
Map.Entryentry=(Map.Entry)it.next();//找到所有key-value對檔備集合
if(entry.getValue().equals(value)){//通過判斷是否有該value值
ints=(int)entry.getKey();//取得key值
行卜毀arr.add(s);
}
}
returnarr;
}
『肆』 java map怎麼獲取key
Map map = new Map();Set set = map.entrySet(); Iterator i = set.iterator(); while(i.hasNext()){ Map.Entry entry1=(Map.Entry)i.next(); System.out.println(entry1.getKey()); }這樣最終輸出的就是map的key值
『伍』 java 怎樣計算單字出現次數
import java.util.*; public class Program { public static void main(String[] args) { String input = "the quick brown fox jump over the lazy dog 1234567890"; Map<Character
Integer> counter = characterCounter(input.toLowerCase()); print(counter); System.exit(0); } private static void print(Map<Character
Integer> counter) { for (Map.Entry me : counter.entrySet()) { System.out.printf("物拍%s = %s%n"賀叢
me.getKey()
me.getValue()); } } private static Map<Character
Integer> characterCounter(String input) { Map<罩拍羨Character
Integer> counter = new HashMap<Character
Integer>(0); for (int i = 0; i < input.length(); i++) { Character chr = input.charAt(i); if (Character.isWhitespace(chr)) continue; if (counter.containsKey(chr)) { Integer numberOfOccurrence = counter.get(chr); counter.put(chr
numberOfOccurrence + 1); } else { counter.put(chr
1); } } return counter; } }
『陸』 關於java的Map問題。Map.Entry()定義的是靜態介面,getKey和getValue是誰實現的
樓主,代碼中的Map.Entry<String, String> 是哪個對象燃滑給的,就是那胡段畝個對象實現褲森的。