如何取出Map中key和value的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取出Map中key和value的值相关的知识,希望对你有一定的参考价值。
参考技术A 你是否已经对每次从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);
);
return
entries;
调用这个方法:
Map.Entry[]
set
=
getSortedHashtable(t);
//perportyTable
for
(int
i=0;i<set.length;i++)
System.out.println(set[i].getKey()。toString());
System.out.println(set[i].getValue()。toString());
如何取出 Map中key和value的值
参考技术A 12
3
4
5
6
7
8
public static void main(String[] args)
Map<String, String> map = new HashMap<String, String>();
map.put("1", "v1");
map.put("2", "v2");
for (String key : map.keySet())
System.out.println("key= " + key + " and value= " + map.get(key));
取key和value
以上是关于如何取出Map中key和value的值的主要内容,如果未能解决你的问题,请参考以下文章