
java 获取map中所有的key和value值
javautilIterator 对 collection 进行迭代的迭代器。
javautilIterator it = mapentrySet()iterator();
while(ithasNext()){
javautilMapEntry entry = (javautilMapEntry)itnext();
entrygetKey() //返回对应的键
entrygetValue() //返回对应的值
}
以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:
Map<String,String> testData = new HashMap<String, String>();
Set<String> keys = testDatakeySet();
for(String key :keys){
Systemoutprintln(key+" "+testDataget(key));
}
上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<MapEntry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:
Set<Entry<String, String>> entries = testDataentrySet();
for (Entry<String, String> entry : entries) {
Systemoutprintln(entrygetKey()+":"+entrygetValue());
}
当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。
当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。
在一些PHP的场景之中可能会遇到,在PHP的数组中需要根据其中某一个value值来获取得到其key的值。这个时候就需要使用到PHP数组函数中的array_search()这个方法。
$array = array('test0','test1','test2');
$array1 = array('test0','test1','test2','test1');
$key = array_search('test1',$array);
$key1 = array_search('test1',$array1);
echo $key;
echo $key1;
输出都是1
如果有重复的value输出第一个相匹配的key
扩展资料
使用方法:
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
//array_key_exists()的使用方法
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
//相关函数有
array_keys() - Return all the keys or a subset of the keys of an array
array_values() - Return all the values of an array
array_key_exists() - Checks if the given key or index exists in the array
hm已是一个HashMap的引用。 如果你知道当前的这个key,可以通过hmget(key)方法来获得value。 获得key的方法hmkeySet();因为你不知道key是哪个其实该方法就是获得一个key的集合。 具体可以结合以下例子看看,里面有个迭代器用于遍历的。
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用MapEntry类,你可以得到在同一时间得到所有的信息。 标准的Map访问方法如下: Set keys = mapkeySet( ); if(keys != null) { Iterator iterator = keysiterator( ); while(iteratorhasNext( )) { Object key = iteratornext( ); Object value = mapget(key); ;… ;} } 然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。 幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entrySet()的方法,这个方法返回一个MapEntry实例化后的对象集。 接着,MapEntry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下: Set entries = mapentrySet( ); if(entries != null) { Iterator iterator = entriesiterator( ); while(iteratorhasNext( )) { MapEntry entry =iteratornext( ); Object key = entrygetKey( ); Object value = entrygetValue(); ;… } } 尽管增加了一行代码,我们却省略了许多对Map不必要的"get"调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。MapEntry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。 Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对 Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了MapEntry类来转换,好,现在就用这 个类来作文章,我具体写了一个方法。 代码: / 方法名称:getSortedHashtable 参数:Hashtable h 引入被处理的散列表 描述:将引入的hashtableentrySet进行排序,并返回 / public static MapEntry[] getSortedHashtable(Hashtable h){ Set set = hentrySet(); MapEntry[] entries = (MapEntry[])settoArray(new MapEntry[setsize()]); Arrayssort(entries,new Comparator(){ public int compare(Object arg0, Object arg1) { Object key1 = ((MapEntry)arg0)。getKey(); Object key2 = ((MapEntry)arg1)。getKey(); return ((Comparable)key1)。compareTo(key2); } }); return entries; } 调用这个方法: MapEntry[] set = getSortedHashtable(t); //perportyTable for (int i=0;i<setlength;i++){ Systemoutprintln(set[i]getKey()。toString()); Systemoutprintln(set[i]getValue()。toString()); }
一、使用for循环
for (var key in json)
{consolelog(key); //获取key
consolelog(json[key]); //获取对应的value值}
二、jquery回调函数each完成的
each方法为每个匹配元素规定要运行的函数。
提示:返回 false 可用于及早停止循环。
语法:$(selector)each(function(index,element))
参数:function(index,element)
必需。为每个匹配元素规定运行的函数。index - 选择器的 index 位置。
element - 当前的元素(也可使用 "this" 选择器)。
$each(json, function (i)
{ consolelog(i); //获取键值consolelog(json[i]); //获取对应的value});
consolelog,简单科普这个函数的作用。前端开发者可以在js代码的任何部分调用consolelog,然后你就可以在浏览器的开发者控制台里,看到这个函数调用的那一瞬间你指定的变量或表达式的值。
其实想要获取key值还是很简单的,我们可以使用for循环,直接获取JSON中的key值,也可以使用jquery回调函数each获取
json易于人阅读和编写,同时也易于机器解析和生成,它简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,并有效地提升网络传输效率。
根据官方定义可以看出,键值对pair一定是string : value的格式。
key:必须是string,根据string的定义,所以必须打双引号。
value:可以是string,number,object,array,true,false,null这些东西里面只有string是带双引号的,其他都不带。
以上就是关于java怎么获取map的key全部的内容,包括:java怎么获取map的key、php如何根据某一个value获取其key、如何取出 Map中key和value的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)