如何从map对象中取出key相同的数据

如何从map对象中取出key相同的数据,第1张

Set keySet = mapkeySet();//获取map的key值的集合,set集合 for(Object obj:keySet){//遍历key Systemoutprintln("key:"+obj+",Value:"+mapget(obj));//输出键与值 }

方案1: 自己写循环

比如

String value="test123";

Set<String>kset=mapkeySet();

for(String ks:kset){

if(valueequals(mapget(ks)){

Systemoutprintln(ks);

}

}

方案2:使用 orgapachecommonscollections4MapUtilsinvertMap(Map<K, V>)

先将key和value 反转下

1

2

3

4

5

6

7

8

public static void main(String[] args){

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

mapput("name", "飞天奔月");

mapput("age", "18");

//需要 apache commons-collections4 jar

Map<String, String> invertMap = orgapachecommonscollections4MapUtilsinvertMap(map);

Systemoutprintln(invertMapget("飞天奔月"));

}

结果:

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迭代,需要使用map的key,问度娘后记录使用方法如下,希望更多人能学习到

public class MyUtil1 {

public static void

iteratorMap1(Map m) {

Set

set=mkeySet();//用接口实例接口

Iterator iter =

setiterator();

while (iterhasNext())

{//遍历二次,速度慢

String

k=(String)iternext();

Systemoutprintln(k +"="+ mget(k));

//Systemoutprintln(iternext()+"="+

mget(iternext()));

//因为指针判断下一个有没有值 iternext是当前对象

但是 mget(iternext())是下一个值

}

public static void iteratorMap(Map m){

Iterator

i=mentrySet()iterator();

while(ihasNext()){//只遍历一次,速度快

MapEntry

e=(MapEntry)inext();

Systemoutprintln(egetKey()+"="+egetValue());

//Systemoutprintln(esetValue(""));//返回value的值

}

}

你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用MapEntry类,你可以得到在同一时间得到所有的信息。 标准的Map访问方法如下: Set keys = mapkeySet( ); if(keys != null) { Iterator iterator = keysiterator( )

以上就是关于如何从map对象中取出key相同的数据全部的内容,包括:如何从map对象中取出key相同的数据、在map集合中通过value怎么得到key、java怎么获取map的key等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9428684.html

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

发表评论

登录后才能评论

评论列表(0条)

保存