关于Java的Map用法的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Java的Map用法的问题相关的知识,希望对你有一定的参考价值。
key和value
我想知道key中存入的都是相同的值,但value不同,这样能不能行。
或者key中存一个数,value里存2个或者更多,是不是办不到啊。
小弟初学Java,望大虾指教!不胜感激~~~
很遗憾 这样肯定是不行的 key之所以称为key 就是说要保证它是唯一的 如果你想实现上面的功能 把value当做key 把key当value不就可以了吗?
key中存一个数,value里存2个或者更多,是不是办不到啊。
可以做到 key是一个数 value随便一个Object就可以 可以是数组 也可以是集合 比如说是List 这些都可以存一组数据 参考技术A Java中的Map,1个key只能对应1个Value,第二次放入同样的key时会覆盖掉上次的value。
要1个key对应多个value,用apach提供的MultiValueMap
org.apache.commons.collections.MultiValueMap
其value取出来是个List 参考技术B 我想知道key中存入的都是相同的值,但value不同,这样能不能行(不行)
或者key中存一个数,value里存2个或者更多,是不是办不到啊(其value可以是bean,map,list...) 参考技术C key 和 value是一一对应的关系,一个key只能对应一个value
你可以把key 要对应的多个值放入一个list中,用key来对应这个list
java 中Map用法
while(itr.hasNext()) String skey=(String)itr.next(); String svalue=(String)map1.get(skey); System.out.println("key=="+skey+",value=="+svalue); System.out.println("---------------------------"); Set<Entry<String,String>> setentry=map1.entrySet(); Iterator<Entry<String,String>> entryit=setentry.iterator(); while(entryit.hasNext()) Entry<String,String> en=(Entry<String,String>)entryit.next(); String skey2=(String)en.getKey(); String svalue2=(String)en.getValue(); System.out.println("key2=="+skey2+",value2=="+svalue2); 有什么区别吗?
参考技术A 第一种是先把map的所有key看成Set,然后遍历出每个key,根据key获取value.第二种是先把map看成一个Map.Entry的Set,那么每个Map.Entry就是一个键--值对,遍历这个Set,就遍历出了一个个的Map.Entry,这个对象包含了键值对,直接从中获取key和value就ok.
以上是关于关于Java的Map用法的问题的主要内容,如果未能解决你的问题,请参考以下文章