注:此题答案源于网络的面试宝典,只是看到记录一下
已知一个HashMap<Integer,User>集合,User有name(String)和age(int)属性,请写一个方法实现对HashMap的排序功能,该方法形参为HashMap<Integer,User>,返回类型为HashMap<Integer,User>,要求:根据HashMap中的User的age进行倒序排序,且key=value键值对不能拆散。
答:
Tips:
- 注意HashMap本身不能排序(HashMap是无序的),而此题偏偏对HashMap排序,所以只能想想有没有Map是有序的---LinkedHashMap,LinkedHashMap是Map结构也是链表结构,是有序的,而且LinkedHashMap是HashMap的子类,所以返回LinkedHashMap<Integer,User>即可。
- 凡是对集合的操作,尽量使用JDK中API,而不是用冒泡、选择排序等,所以首先想到用Collections集合工具类
public class HashMapTest{
public static void main(String [] args){
HashMap<Integer,User> users=new HashMap<>();
users.put(1,new User(&#