获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下来就具体介绍一下四种遍历方法以及map里面的元素通过key或者value来比较大小并排序:
package com.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
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的值,然后获取value;
/*for(String key : map.keySet()){
String value = map.get(key);
System.out.println(key+" "+value);
}*/
//使用迭代器,获取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>>(){
@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());
}
}
}
运行输出
c 3 b 4 a 5 d 5
注:当value值相同时,比较key大小,按照从小到大排序。
总结:
以上就是本文关于Java map存放数组并取出值代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:Java中map遍历方式的选择问题详解 Java中map内部存储方式解析 Javabean和map相互转化方法代码示例 等,有什么问题可以随时留言,小编会及时回复大家的。
# java
# map
# 存放数组
# java数组复制的四种方法效率对比
# Java中的数组复制(clone与arraycopy)代码详解
# 浅谈java中字符串数组、字符串、整形之间的转换
# Java中一维二维数组的静态和动态初始化
# 详解java中反射机制(含数组参数)
# Java数组的扩容代码示例
# Java实现数组去除重复数据的方法详解
# java编程中拷贝数组的方式及相关问题分析
# 遍历
# 四种
# 方法来
# 键值
# 有什么
# 迭代
# 我觉得
# 则是
# 当你
# 感兴趣
# 种方法
# 转化为
# 介绍一下
# 可以随时
# 两类
# 小编
# 从小到大
# 这四
# 主要是
# 另一类
相关文章:
哈尔滨网站建设策划,哈尔滨电工证查询网站?
已有域名如何快速搭建专属网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何用AWS免费套餐快速搭建高效网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何零基础在云服务器搭建WordPress站点?
建站之星安装失败:服务器环境不兼容?
网站制作员失业,怎样查看自己网站的注册者?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站OpenVZ教程与优化策略:配置指南与性能提升
制作网站的基本流程,设计网站的软件是什么?
如何用西部建站助手快速创建专业网站?
代刷网站制作软件,别人代刷火车票靠谱吗?
如何快速搭建安全的FTP站点?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
临沂网站制作企业,临沂第三中学官方网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何打造高效商业网站?建站目的决定转化率
魔毅自助建站系统:模板定制与SEO优化一键生成指南
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
建站VPS推荐:2025年高性能服务器配置指南
广州营销型建站服务商推荐:技术优势与SEO优化解析
制作网站外包平台,自动化接单网站有哪些?
微信小程序 五星评分(包括半颗星评分)实例代码
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何在建站主机中优化服务器配置?
已有域名和空间如何快速搭建网站?
PHP 500报错的快速解决方法
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何登录建站主机?访问步骤全解析
linux top下的 minerd 木马清除方法
如何在Golang中指定模块版本_使用go.mod控制版本号
表情包在线制作网站免费,表情包怎么弄?
如何选择高效可靠的多用户建站源码资源?
手机网站制作与建设方案,手机网站如何建设?
建站之星如何通过成品分离优化网站效率?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站之星如何优化SEO以实现高效排名?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何通过云梦建站系统实现SEO快速优化?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何用低价快速搭建高质量网站?
平台云上自助建站如何快速打造专业网站?
建站之星如何快速更换网站模板?
网站app免费制作软件,能免费看各大网站视频的手机app?
如何高效利用亚马逊云主机搭建企业网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。