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()。

举个例子:

Map<Integer, String> map = new HashMap<Integer, String>();

先拿所有的键:

Integer[] keys = mapkeySet()toArray(new Integer[0]);

然後随机一个键,找出该值:

Random random = new Random();

Integer randomKey = keys[randomnextInt(keyslength)];

String randomValue = mapget(randomKey);

//第一种:普遍使用,二次取值

Systemoutprintln("通过MapkeySet遍历key和value:");

for (String key : mapkeySet()) {

Systemoutprintln("key= "+ key + " and value= " + mapget(key));

}

//第二种

Systemoutprintln("通过MapentrySet使用iterator遍历key和value:");

Iterator<MapEntry<String, String>> it = mapentrySet()iterator();

while (ithasNext()) {

MapEntry<String, String> entry = itnext();

Systemoutprintln("key= " + entrygetKey() + " and value= " + entrygetValue());

}

Collection<String> coll = mapvalues();

自己查values方法返回值是什么。

map接口的key-value映射关系中,key或value允许为null由具体实现决定。

put方法必须有个返回值,该返回值用来暗示map容器中是否已存在相同的key。

一般情况,如果key已存在,则替换旧的value并返回它,否则创建映射并返回null。

如果map实现允许value为null,那么put一个value为null的映射,再次put进相同key的映射,此时返回值必是null,无法得知是否已存在相同的key。相应了这句话“如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联”。

实现思路:先排序,之后取出最大的一个即可。<pre t="code" l="java">import javautilArrays;

import javautilCollection;

import javautilHashMap;

import javautilMap;

import javautilSet;

public class MaxMapDemo {

public static void main(String[] args) {

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

mapput(1, 8);

mapput(3, 12);

mapput(5, 53);

mapput(123, 33);

mapput(42, 11);

mapput(44, 42);

mapput(15, 3);

Systemoutprintln(getMaxKey(map));

Systemoutprintln(getMaxValue(map));

}

/

求Map<K,V>中Key(键)的最大值

@param map

@return

/

public static Object getMaxKey(Map<Integer, Integer> map) {

if (map == null) return null;

Set<Integer> set = mapkeySet();

Object[] obj = settoArray();

Arrayssort(obj);

return obj[objsize()-1];

}

/

求Map<K,V>中Value(值)的最大值

@param map

@return

/

public static Object getMaxValue(Map<Integer, Integer> map) {

if (map == null) return null;

Collection<Integer> c = mapvalues();

Object[] obj = ctoArray();

Arrayssort(obj);

return obj[objsize()-1];

}

}

LIST 是以数组形式存储的 map是以key-value形式

Map map =(Map)listget(i);

取到了map 在从map里面get(key)就行了

key是你当初存放在map里面的关键字

public static void main(String[] args) {

Map<String, String> map = new HashMap<String, String>();

mapput("key1", "value1");

mapput("key2", "value2");

mapput("key3", "value3");

Set<String> keySet = mapkeySet();

int i = mapsize()-1;

Map<Integer, String> mapKey = new HashMap<Integer, String>();

Map<Integer, String> mapValue = new HashMap<Integer, String>();

for(javautilMapEntry<String, String> entry : mapentrySet()) {

//将原来MAP的VALUE放入新的MAP的VALUE里面

mapKeyput(i, entrygetValue());

//将原来MAP的KEY放入新的MAP的VALUE 里面

mapValueput(i, entrygetKey());

i--;

}

//打印KEY值

Systemoutprintln(mapKeyget(2));

//打印VALUE值

Systemoutprintln(mapValueget(0));

}

扩展资料:

java键值对的使用

Map集合没有继承Collection接口,但是其提供了key到value的映射。每一个key不能有相同,每个key只能映射一个value值。

下面通过一个程序来说明键值对的使用,下面是一个基本的键值对应用程序:

package Test;

import javautilCollection;

import javautilHashMap;

import javautilIterator;

import javautilMap;

import javautilSet;

public class KeyValue {

public static void main(String[] args) {

Map <String,String> map=new HashMap<>();

mapput("01", "张三");

mapput("02", "王五");

Set<String> set=mapkeySet();

Iterator <String> it=setiterator();

Systemoutprintln("key中集合元素:");

while(ithasNext()){

Systemoutprintln(itnext());

}

Collection <String> coll=mapvalues();

it=colliterator();

Systemoutprintln("value中集合元素:");

while(ithasNext()){

Systemoutprintln(itnext());

}

}

}

输出结果如图所示:

以上就是关于java怎么获取map的key全部的内容,包括:java怎么获取map的key、JAVA如何随机取出Map中的一对键和值、java map接口中的方法value();返回值是collection类型。请问为什么是这样获取返回值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存