集合--Map

HashMap:
1.存储键值对(key,value),
2.允许null值和null键
3.key值不可以重复

Map可以看做3部分:1.key是一个集合2.value是一个集合3.key和value是一个集合.

一些代码:
/**
*

  • @author dch

*/
//HashMap
public class TestHashMap {

public static void main(String[] args) {
	
	Map map = new HashMap();
	
	//存储数据
	map.put("1001", "张三");
	map.put("美国", "US");
	map.put("中国", "CN");
	map.put("1003", "李四");
	//map.put("1003", "王五");//key如果相同,覆盖了原始数据
	map.put("1004", "李四");//value可以相同
	
	//获取map中的元素,获取value
	map.get("1003");
	System.out.println(map.get("1003"));
	System.out.println(map.get("1004"));
	
	//获取 key ,value的集合
	Set entrySet = map.entrySet();//将key,和value封装到entrySet里面
	for (Object obj : entrySet) {
	}
	
	
	//遍历获取所有的key	
	Set sets = map.keySet();
	//foreach 遍历key可以得到key,也可以得到value
	for (Object s : sets) {
		System.out.println("遍历 key: "+s);
	}
	
	//遍历获取所有的value
	Collection values = map.values();
	for (Object v : values) {
		System.out.println("遍历所有的value: "+v);
	}
		
	}
}

TreeMap 一个可以排序的Map ,默认将key升序存储

public class TestTreeMap {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	//创建 TreeMap    一个可以排序的Map     ,默认将key升序存储
	
	Map map = new TreeMap();
	map.put("zhangsan", 98);
	map.put("lisi", 95);
	map.put("wangwu", 92);
	map.put("zhaoliu", 93);
	
	//遍历 map
	Set keys =  map.keySet();
	for(Object obj : keys){
		System.out.println(obj+"---"+map.get(obj));
	}
	//将 map降序
	
	Map map2 = new TreeMap(new Comparator<String>() {
		//自定义排序规则
		@Override
		public int compare(String o1, String o2) {
			  if(o1.compareTo(o2)>0){
				  return -1;
			  }else if(o1.compareTo(o2)<0){
				  return 1;
			  }
			return 0;
		}
	});
	map2.put("zhangsan", 98);
	map2.put("lisi", 95);
	map2.put("wangwu", 92);
	map2.put("zhaoliu", 93);
	
	System.out.println("输map2");
	// 输出map2  
	Set entry = map2.entrySet();
	for(Object obj : entry){
		if(obj instanceof Map.Entry){
			Map.Entry en = (Map.Entry)obj;
			System.out.println(en.getKey()+"----"+en.getValue());
		}		
	}
	
	
	// 存储对象    key: 对象    id—— 学生对象 
	Map map3 = new TreeMap();
	map3.put(1001, new Student(1001,"张三",22));
	map3.put(1003, new Student(1003,"李四",22));
	map3.put(1002, new Student(1002,"王五",22));
	map3.put(1005, new Student(1005,"找流",22));
	
	//获取value     将排行的value是 放入 一个有序的集合中Collectioin
	Collection  stus = map3.values();
	for(Object obj : stus){
		System.out.println(obj);
	}
	
	
}

}

猜你喜欢

转载自blog.csdn.net/qq_41035395/article/details/89021769
今日推荐