java里面获取map的key和value的方法
Posted 普通网友
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里面获取map的key和value的方法相关的知识,希望对你有一定的参考价值。
获取map的key和value的方法分为两种形式:
map.keySet():先获取map的key,然后根据key获取对应的value;
map…entrySet():同时查询map的key和value,只需要查询一次;
两者的性能比较可以查看map.keySet()和map.EntrySet()的比较。
以下是获取map的key和value,以及map里面的元素通过key或者value来比较大小并排序;
注意:当map的value值相等时,根据key值进行排序
public class MapSort
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的值,然后获取value;
/*for(String key : map.keySet())
String value = map.get(key);
System.out.println(key+" “+value);
*/
//使用迭代器,获取key;
/*Iterator 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>>()
@Override
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());
return flag;
);
//遍历list得到map里面排序后的元素
for(Entry<String, String> en : list)
System.out.println(en.getKey()+" "+en.getValue());
Java中Map和Map<key,value>的区别。
本人新手,请指点。 什么时候该用哪一个,,两者的关系等,请高手明示。
Map<key,value>是Map的一个泛型形式,俩个Map之间实际上是一个东西,但是用法却有点不一样
Map:里面存放的是键值对集合,键值对的类型可以是任意封装类型
例:
Map map=new HashMap();//以下的俩种使用方式都是对的
map.put("a",1);
map.put(11,"abc");
Map<key,value>:里面存放的也是键值对集合,但是类型只能是<>中指定的类型
例:
Map<String,Integer> map=new HashMap<String,Integer>();//正确使用方式
map.put("a",1);
//错误使用方式,会导致无法通过编译
map.put(11,"abc"); 参考技术A 其实前面的Map相当于Map<Object,Object>.,这个是指装入的键是对象类型,装入的值是对象类型。后面的Map<key,value>只是说明Map装入的是键值对。 参考技术B <>里面的内容代表范式 比如 Map<String,int> 就表示这个 map 的key 是String 类型 value 是 int 类型 就是 强制 规定你 map 里面的类型. 代码规范 参考技术C 哥 这两个是一样的 有区别么 就名字不同
以上是关于java里面获取map的key和value的方法的主要内容,如果未能解决你的问题,请参考以下文章