java怎么获取map的key

java怎么获取map的key,第1张

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的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9497749.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存