HashMap的用法以及排序笔记

//对HashMap进行自定义排序
import java.util.*;

public class Main{
	public static void main(String[] args){
		Map<Integer,String> map = new HashMap<>();
	
			map.put(1, "a");
			map.put(12, "qwe");
			map.put(3, "cd");
			map.put(15, "bb");
		//遍历key
		for(Integer key : map.keySet()){
			//System.out.println(key);
		}
		//遍历value
		for(String str : map.values()){
			//System.out.println(str);
		}
		//遍历键值对
		for(Map.Entry<Integer,String>it : map.entrySet()){
			//System.out.println(it.getKey()+it.getValue());
		}
		//根据key排序,把keySet集合转为Arrays数组,对数组排序,根据key取出键值对
		Set set = map.keySet();
		Object[] arr = set.toArray();
		Arrays.sort(arr);
		for(Object key : arr){
			//System.out.println(key+map.get(key));
		}
		//根据key排序,把keySet集合转为ArrayList集合,对数组排序,根据key取出键值对,
		Set<Integer> set2 = map.keySet();
		List<Integer> list = new ArrayList<Integer>(set2);
		Collections.sort(list);
		//如果要倒许,就先sort正序排过,再反转一下
		Collections.reverse(list);
		for(Integer t : list){
			System.out.println(t+map.get(t));
		}
		
	}
}
/*总结:

	1.把ArrayList集合进行从小到大排序就用Collectiongs.sort(list);进行倒序排序就在sort之后再用Collectiongs.reverse(list);反转一下即为从大到小排序
	2.对HashMap对key进行排序就先把keySet集取出来,再把这个set转为ArrayList进行排序 
	Set<Integer> set = map.keySet(); 
	List<Integer> list = new ArrayList<Integer>(set);
	Collections.sort(list);
	3.遍历ArrayList,用增强型for循环
	for(Integer t : list){
		System.out.println(t+map.get(t));
	}
	4.定义List,Set之类的记得写Integer类型不然之后会显示类型转换错误
	5.HashMap只能保留单键,所以自动去重。如果,key是数字的话,每次插入会根据key自动进行从小到大排序。综上,key为数字,HashMap自动去重+排序。
	6.HashMap和TreeMap都是一个key对应一个value,一个value可以对应多个key。
	但是TreeMap默认根据key进行字典序升序排序,所以需要排序就用TreeMap
*/
//示例代码	:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    
    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<Integer,String>();    
        map.put(1,"oa1");
        map.put(3,"oa3");//故意不按顺序放入
        map.put(2,"oa2");
        map.put(4,"oa4");
        
        List<String> list = new ArrayList<String>();
        for(Map.Entry<Integer, String> entry : map.entrySet()){
            System.out.println("entry.getKey.hash:" + entry.getKey().hashCode());
            list.add(entry.getValue());
        }

       /System.out.println(list); 
		for(Integer t : map.keySet()){
			System.out.println(t);
		}
		for(Map.Entry<Integer,String>entry : map.entrySet()){
			System.out.println(entry.getKey()+entry.getValue());
		}
    } 
}

猜你喜欢

转载自blog.csdn.net/w1304636468/article/details/88621235