‘壹’ 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> 是哪个对象燃滑给的,就是那胡段亩个对象实现裤森的。