Java基础高级部分(一)

1. 集合部分

1.1 HashMap排序

package cn.Douzi.hashMap01;

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;

import javax.jws.soap.SOAPBinding.Use;

public class hashMap_demo01 {
    
    public static void main(String[] args) {
    
        HashMap<Integer, User> hashMap = new HashMap<Integer, User>();
        
        User user = new User();
        user.setName("张三");
        user.setAge(23);
        
        hashMap.put(1, user);
        
        User user2 = new User();
        user2.setName("李四");
        user2.setAge(24);
        
        hashMap.put(2, user2);
        
        User user3 = new User();
        user3.setAge(21);
        user3.setName("王五");
        
        hashMap.put(3, user3);
        
        System.out.println("排序前HashMap:" + 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 = new LinkedHashMap<Integer, User>();
        
        //凡是要对集合排序,首先想到的就是集合的工具类
        //把Map结构转换为list结构
        //把Map转换为Set集合
        Set<Entry<Integer, User>> entrySet = hashMap.entrySet();
        //把Set集合转换为List
        ArrayList<Entry<Integer, User>> list = new ArrayList<>(entrySet);
        Collections.sort(list, new Comparator<Entry<Integer, User>>() {

            @Override
            public int compare(Entry<Integer, User> o1, Entry<Integer, User> o2) {
                // TODO Auto-generated method stub
                // -1:正序排序; 前面-后面:正序;后面-前面:倒序
                return o2.getValue().getAge() - o1.getValue().getAge();  
            }
        });
        
        //将排好顺序的list转换为LinkedHashMap
        for (int i = 0; i < list.size(); i++) {
            Entry<Integer, User> entry = list.get(i);
            newHashMap.put(entry.getKey(), entry.getValue());
        }
        
        return newHashMap;
    }
}

2.java中的引用类型

3. 多线程线程池部分

 

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/douzujun/p/10505257.html
今日推荐