在map集合中通过map.put key valuee怎么得到key

java中map的循环遍历和map的获取值的办法-Java基础-Jsp教程-壹聚教程网java中map的循环遍历和map的获取值的办法
Java中Map的遍历方式了,这个其实有点像php中数组了,下文整理了一些map的循环遍历和map的获取值的办法,希望能帮助到各位。
map的循环遍历方式&
package com.sec.
import java.util.HashM
import java.util.I
import java.util.M
public class TestMap {
&&& public static void main(String[] args) {
&&&&&&&&& Map&String, String& map = new HashMap&String, String&();
&&&&&&&&& map.put(&1&, &value1&);
&&&&&&&&& map.put(&2&, &value2&);
&&&&&&&&& map.put(&3&, &value3&);
&&&&&&&&&&&&&
&&&&&&&&& //第一种:普遍使用,二次取值
&&&&&&&&& System.out.println(&通过Map.keySet遍历key和value:&);
&&&&&&&&& for (String key : map.keySet()) {
&&&&&&&&&& System.out.println(&key= &+ key + & and value= & + map.get(key));
&&&&&&&&& }
&&&&&&&&& System.out.println(&www.111cn.net&);
&&&&&&&&& //第二种
&&&&&&&&& System.out.println(&通过Map.entrySet使用iterator遍历key和value:&);
&&&&&&&&& Iterator&Map.Entry&String, String&& it = map.entrySet().iterator();
&&&&&&&&& while (it.hasNext()) {
&&&&&&&&&& Map.Entry&String, String& entry = it.next();
&&&&&&&&&& System.out.println(&key= & + entry.getKey() + & and value= & + entry.getValue());
&&&&&&&&& }
&&&&&&&&& System.out.println(&www.111cn.net&);
&&&&&&&&& //第三种:推荐,尤其是容量大时
&&&&&&&&& System.out.println(&通过Map.entrySet遍历key和value&);
&&&&&&&&& for (Map.Entry&String, String& entry : map.entrySet()) {
&&&&&&&&&& System.out.println(&key= & + entry.getKey() + & and value= & + entry.getValue());
&&&&&&&&& }
&&&&&&&&& System.out.println(&www.111cn.net&);
&&&&&&&&& //第四种
&&&&&&&&& System.out.println(&通过Map.values()遍历所有的value,但不能遍历key&);
&&&&&&&&& for (String v : map.values()) {
&&&&&&&&&& System.out.println(&value= & + v);
&&&&&&&&& }
&&&&&&&&& System.out.println(&www.111cn.net&);
&&&&&&&& }
for(Map.Entry&String, String& entry:map.entrySet()){&&&
&&&& System.out.println(entry.getKey()+&---&&+entry.getValue());&&&
for(Map.Entry&String, String& entry:map.entrySet()){
&&&&&&&&& System.out.println(entry.getKey()+&---&&+entry.getValue());
第二种用迭代
Set set = map.entrySet();&&&&&&&&
Iterator i = set.iterator();&&&&&&&&
while(i.hasNext()){&&&&&
&&&& Map.Entry&String, String& entry1=(Map.Entry&String, String&)i.next();&&&
&&&& System.out.println(entry1.getKey()+&==&+entry1.getValue());&&&
Set set = map.entrySet();&&&&
Iterator i = set.iterator();&&&&
while(i.hasNext()){&
&&& Map.Entry&String, String& entry1=(Map.Entry&String, String&)i.next();
&&& System.out.println(entry1.getKey()+&==&+entry1.getValue());
用keySet()迭代
Iterator it=map.keySet().iterator();&&&
while(it.hasNext()){&&&
&&&& key=it.next().toString();&&&
&&&& value=map.get(key);&&&
&&&& System.out.println(key+&--&+value);&&&
Iterator it=map.keySet().iterator();
while(it.hasNext()){
&&& key=it.next().toString();
&&& value=map.get(key);
&&& System.out.println(key+&--&+value);
用entrySet()迭代
Iterator it=map.entrySet().iterator();&&&&&&&&&&
System.out.println( map.entrySet().size());&&&
S&&&&&&&&&&
while(it.hasNext()){&&&
&&&&&&& Map.Entry entry = (Map.Entry)it.next();&&&&&&&&&&
&&&&&&& key=entry.getKey().toString();&&&&&&&&&&
&&&&&&& value=entry.getValue().toString();&&&&&&&&&&
&&&&&&& System.out.println(key+&====&+value);&&&&&&&&&&&&&&&&&&&&
上一页: &&&&&下一页:相关内容map key存放数组,如何通过数组中的某个值获取map的value - 开源中国社区
当前访客身份:游客 [
当前位置:
key:[/system/user/list, /system/user/e]--------value:USER_READ
key:/system/screen/edit--------value:SCREEN_PERMIUM_WRITE
key:/system/order/shanxiuxia--------value:WEADOC_ORDER_INFO
key:/system/order/edit--------value:ORDER_WRITE
key:/system/order/shiju--------value:OWN_ONLINE_ORDER_INFO
key:/system/screen/list--------value:SCREEN_PERMIUM_READ
key:[/system/productCombo/list, /system/productCombo/e]--------value:COMBO_READ
key:/system/policyPersonInfo/edit--------value:POLICY_WRITE
key:[/system/insuranceProduct/list, /system/insuranceProduct/e]--------value:PRODUCT_READ
key:[/system/user/edit, /system/user/add, /system/user/delete]--------value:USER_WRITE
key:/system/relative/list--------value:RELATIVE_READ
就像这样,有的key是数组,有的不是。有没有办法 通过数组中的一个字符串 取到value。
共有3个答案
<span class="a_vote_num" id="a_vote_num_
没办法,你这不是一对一的,有可能是一对多,办法是只能遍历了
--- 共有 1 条评论 ---
能说具体一点吗,可是遍历好像也不能取到value
(4个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
result = []
& & data = {
& & & ['s1', 's2']: 'value' & & & &
& & find_s = 's1'
& & for k, v in data.iteritems():
& & & & for s in k:
& & & & & & if s.find(find_s) & 0:
& & & & & & & & result.append(v)
& & & & & & & &&
& & print result
python伪代码,跑不了的,python不允许list做为 key
--- 共有 1 条评论 ---
我是java,那看来 只能一对一存放了。value存一样的
(4个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
你这对转一下,value-&key,然后遍历map匹配出key
更多开发者职位上
有什么技术问题吗?
zhanggu...的其它问题
类似的话题在map集合中通过value怎么得到key_百度知道你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。&&& 标准的Map访问方法如下:&&& Set keys = map.keySet( );&&& if(keys != null) {&&& Iterator iterator = keys.iterator( );&&& while(iterator.hasNext( )) {&&& Object key = iterator.next( );&&& Object value = map.get(key);&&& ;…&&& ;}&&& }&&& 然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。&&& 幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。 接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:&&& Set entries = map.entrySet( );&&& if(entries != null) {&&& Iterator iterator = entries.iterator( );&&& while(iterator.hasNext( )) {&&& Map.Entry entry =iterator.next( );&&& Object key = entry.getKey( );&&& Object value = entry.getValue();&&& ;…&&& }&&& }&&& 尽管增加了一行代码,我们却省略了许多对Map不必要的"get"调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。&&& Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对 Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了Map.Entry类来转换,好,现在就用这 个类来作文章,我具体写了一个方法。&&& 代码:&&& /**&&& * 方法名称:getSortedHashtable&&& * 参数:Hashtable h 引入被处理的散列表&&& * 描述:将引入的hashtable.entrySet进行排序,并返回&&& */&&& public static Map.Entry[] getSortedHashtable(Hashtable h){&&& Set set = h.entrySet();&&& Map.Entry[] entries = (Map.Entry[])set.toArray(new Map.Entry[set.size()]);&&& Arrays.sort(entries,new Comparator(){&&& public int compare(Object arg0, Object arg1) {&&& Object key1 = ((Map.Entry)arg0)。getKey();&&& Object key2 = ((Map.Entry)arg1)。getKey();&&& return ((Comparable)key1)。compareTo(key2);&&& }&&& });&&&&&& }&&& 调用这个方法:&&& Map.Entry[] set = getSortedHashtable(t);&&& //perportyTable&&& for (int i=0;i&set.i++){&&& System.out.println(set[i].getKey()。toString());&&& System.out.println(set[i].getValue()。toString());&&& }
【】【】【】【】
ISBN编号:&8
出版时间:&2013-3
出版社:&中国人事出版社
定价:¥45 优惠价:¥45&&ISBN编号:&9
出版时间:&2013-4
出版社:&中国人事出版社
定价:¥45 优惠价:¥45&&
????????????
????????????
         Copyright &#169;
() All Rights Reserved1730人阅读
java代码(18)
获取map的&#20540;主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的&#20540;,另一类则是通过map.entrySet()方法来取&#20540;,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的&#20540;的时候需要通过key来查询value,后者则直接将key和value的键&#20540;对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见,接下来就具体介绍一下四种遍历方法以及map里面的元素通过key或者value来比较大小并排序:
package com.
import java.util.ArrayL
import java.util.C
import java.util.HashM
import java.util.L
import java.util.M
import java.util.Map.E
public class Test {
public static void main(String[] args) {
Map&String,String& map = new HashMap&String,String&();
map.put(&b&,&4&);
map.put(&a&,&5&);
map.put(&c&,&3&);
map.put(&d&,&5&);
//通过map.keySet()方法
//方法一:通过得到key的值,然后获取
/*for(String key : map.keySet()){
String value = map.get(key);
System.out.println(key+&
//使用迭代器,获取
/*Iterator&String& iter = map.keySet().iterator();
while(iter.hasNext()){
String key=iter.next();
String value = map.get(key);
System.out.println(key+& &+value);
//通过map.entrySet()方法
//方法一:循环map里面的每一对键值对,然后获取key和value
/*for(Entry&String, String& vo : map.entrySet()){
vo.getKey();
vo.getValue();
System.out.println(vo.getKey()+&
&+vo.getValue());
/*//使用迭代器,获取key
Iterator&Entry&String,String&& iter = map.entrySet().iterator();
while(iter.hasNext()){
Entry&String,String& entry = iter.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+& &+value);
//将map&String,String& 转化为ArryList,但list里面的元素为Entry&String,String&
List&Entry&String,String&& list = new ArrayList&Map.Entry&String,String&&(map.entrySet());
Collections.sort(list,new Comparator&Entry&String,String&&(){
public int compare(Entry&String, String& o1,
Entry&String, String& o2) {
int flag = o1.getValue().compareTo(o2.getValue());
if(flag==0){
return o1.getKey().compareTo(o2.getKey());
//遍历list得到map里面排序后的元素
for(Entry&String, String& en : list){
System.out.println(en.getKey()+& &+en.getValue());
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:12731次
排名:千里之外
原创:26篇
(2)(1)(1)(1)(1)(12)(10)(1)

我要回帖

更多关于 获取map的value集合 的文章

 

随机推荐