Java集合Map,set, list 之间的转换
来源:互联网 发布:管家婆erp端口 编辑:程序博客网 时间:2024/04/29 07:31
Java集合Map,set, list 之间的转换
前言:
通过思维导图复习联系,看到一个HashMap排序题上机题之后有的一个感想,题目如下,看看你能时间出来么?
已知一个HashMap<Integer,User>集合,User 有name(String)和age(int)属性。请写一个方法实现对HashMap的排序功能,该方法接受HashMap<Integer,User>为形参,返回列下为HashMap<Integer,User>,要求对HashMap中的User age 倒序排序,排序是key=value键值不得拆散。
经过反反复复的试错,最终还是摸索出来了,在这里进行一个总结,也算是对自己一个成长的记录,当然有更好的实现方式,如图如下:
代码实践:
package com.itheima;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map.Entry;import java.util.Set; public classTestSort { public static void main(String[] args) { HashMap<Integer,User>hashMap=newHashMap<Integer,User>(); Useruser=newUser(); user.setName("张三"); user.setAge(23); hashMap.put(1,user); Useruser1=new User(); user1.setName("李四"); user1.setAge(24); hashMap.put(2, user1); Useruser2=new User(); user2.setName("王五"); user2.setAge(21); hashMap.put(3, user2); System.out.println("排序前:"+hashMap); HashMap<Integer,User> sortedHashMap=sortHashMap(hashMap); System.out.println("排序后:"+sortedHashMap); } private static HashMap<Integer,User> sortHashMap( HashMap<Integer,User> hashMap){ // 重点就是这个方法了 //创建一个有序的HashMap数据结构,LinkedHashMap LinkedHashMap<Integer,User> newHashMap=newLinkedHashMap<Integer,User>(); //对map集合进行排序,有集合的工具类进行排序,凡是要对集合排序,首先想到的就是集合的工具类Collectons //集合之间是可以互相的转换的,list ,map, set ;所有这里必须将map集合转换为list 结构 //那如何转换呢?把map集合转换成Set集合 Set<Entry<Integer,User>>entrySet=hashMap.entrySet(); //在把set 转换层list集合 ArrayList<Entry<Integer,User>>list= new ArrayList<>(entrySet); //对list 进行排序 Collections.sort(list, new Comparator<Entry<Integer,User>>(){ //添加为实现的方法(Ctrl +1) @Override public intcompare(Entry<Integer, User> arg0, Entry<Integer,User> arg1){ //前面的减后面的就是顺序排序 //用后面的减去前面的就是倒序的排序 return arg0.getValue().getAge()-arg1.getValue().getAge();//顺序进行排序 //returnarg1.getValue().getAge()-arg0.getValue().getAge();//倒序进行排序的 } }); //将排好序的list 转换为LinkedHasMap //进行一个遍历 for(int i=0;i<list.size();i++){ Entry<Integer,User>entry=list.get(i); newHashMap.put(entry.getKey(),entry.getValue()); } return newHashMap; } }
运行结果:
如果改成逆序:
代码一换就成了,代码如下:
小结:
(1) 其中查询集合之间的转换,map,set, list 之间的转换本文中是Map转换成List,方法是将map转成Set之后,将set 再转换成list的方式。
(2) 用到集合工具cllection;
(3) 排序是顺序还是倒序
(4) 用LinkedHashMasp 对list 进行遍历;
0 0
- Java集合Map,set, list 之间的转换
- java 集合类 map/set/list/vector之间的关系
- JAVA List、Map、Set、数组之间转换
- List Map Set集合之间的区别
- java类型list、set、数组、map之间的转换
- JAVA 集合List,数组,Set,Map,直接的相互转换
- JAVA 集合List,数组,Set,Map,直接的相互转换
- JAVA 集合List,数组,Set,Map,直接的相互转换
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- 集合转换java:【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- Java 集合转换(数组、List、Set、Map相互转换)
- Java 集合转换(Object[]数组、List、Set、Map相互转换)
- Java 集合转换(数组、List、Set、Map相互转换)
- Java 集合转换(数组、List、Set、Map相互转换)
- Java 集合转换(数组、List、Set、Map相互转换)
- Java 集合转换 (数组、List、Set、Map相互转换)
- access denied for user 'root'@'localhost'(using password:YES)解决方案
- 利用多线程解决生成券性能问题
- python常用模块
- 数据库结构比较工具
- poj 3481--Double Queue
- Java集合Map,set, list 之间的转换
- oracle学习总结--------oracle数据库的启动流程
- ubuntu wangka
- redis 报错
- linux命令-系统管理
- 火星人有理想有抱负,敢打敢拼
- 适配器总结
- 百度语音识别、语音合成,NAudio录音(C#)
- 表格要经常用