package hashmap; import java.util.*; /* *HashMap 排序 * */ public class Test { public static void main(String[] args) { //创建hashmap集合 HashMap<Integer, User> user = new HashMap<>(); //向集合中添加数据 user.put(1, new User("zhangsahn", 25)); user.put(3, new User("lisi", 33)); user.put(2, new User("wangwu", 23)); HashMap<Integer, User> sortHashMap = sortHashMap(user); //遍历输出 for (Map.Entry<Integer, User> entry : sortHashMap.entrySet()) { System.out.println(entry); } } //构造方法,来进行hashmap集合的排序 private static HashMap<Integer, User> sortHashMap(HashMap<Integer, User> user) { //得到,map集合的键值对 Set<Map.Entry<Integer, User>> entrySet = user.entrySet(); //创建list集合 进行排序 ArrayList<Map.Entry<Integer, User>> list = new ArrayList<>(entrySet); //list集合排序 list.sort(new Comparator<Map.Entry<Integer, User>>() { @Override public int compare(Map.Entry<Integer, User> o1, Map.Entry<Integer, User> o2) { return o2.getValue().getAge() - o1.getValue().getAge(); // 降序 } }); //创建linkedhashmap集合 来接受排序好的数据 LinkedHashMap<Integer, User> userHashMap = new LinkedHashMap<>(); for (Map.Entry<Integer, User> userEntry : list) { userHashMap.put(userEntry.getKey(), userEntry.getValue()); } //返回排序好的集合 return userHashMap; } } //创建user类 class User { private String name; //名字 private int age; //年龄 public User() { //无参构造 } public User(String name, int age) { //带参构造 this.name = name; this.age = age; } public String getName() { return name; } public User setName(String name) { this.name = name; return this; } public int getAge() { return age; } public User setAge(int age) { this.age = age; return this; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
HashMap 排序
最新推荐文章于 2024-07-21 22:27:18 发布