JavaSE基础Map集合

JavaSE基础Map集合_第1张图片

1.针对键值对应关系的数据,Java提供了一种容器Map(将键映射到值的对象,每个键最多只能映射到一个值,一个映射不能包含重复的值)。

Map集合的数据结构只和键有关,与值无关

2.Map的几个子实现类(有序是指存放顺序和取出顺序一致)

  特点
HashMap 底层数据机构是哈希表,元素唯一且无序,元素唯一靠元素重写equals方法和hashCode方法来保证的(Integer 和String两类底层默认重写了这两种方法,所以当键类型是这两种时,不用我们再去重新写,其他类型必须重写),允许插入null值和null键
LinkedHashMap 底层数据结构是链表和哈希表,元素有序且唯一,有序靠链表保证,唯一靠哈希表保证
TreeMap 数据结构是红黑树 特点:元素唯一,而且还能对元素进行排序 :自然排序和比较器排序(可以排序是因为实现了compara接口,重写了compareTo方法),不允许入null值和null键
相关功能:


1).添加元素:put()  第一次采用put添加元素返回null;第二次放置键相同的数据返回上一次的值


2).
删除元素:clear()删除所有元素
                  remove()根据键删除这对键的值,返回这个键所对应的值
3).判断功能:containKey(Object obj):集合中是否包含指定的键
                 containValue(Objet obj):集合中是否包含指定的值
                 isEmpty():集合是否为空
4).获取功能:Set>  entrySet(),返回一个键值对的Set集合 
                 v.get(Object key):根据键获取值
                 Set    keySet():获取集合中所有键的集合
                 Collection   values():获取集合中所有值的集合

/**
 * 
 */
package org.zst.Map;

import java.util.HashMap;
import java.util.Set;

/**		 信息安全
		 左舒婷 ---04
	         杨轶博 ---10
		 软件工程
		 马铭蔚 ---05
		 费媛媛 ---08
 * @author:zsyht
 * @date:2017-11-21上午11:56:24
 */
public class Test3 {
	public static void main(String[] args) {
		//案例中出现的格式是键值对格式,可以考虑使用HashMap
		HashMap aqMap = new HashMap();
		aqMap.put("左舒婷", 4);
		aqMap.put("杨轶博", 10);
		HashMap rgMap = new HashMap();
		rgMap.put("马铭蔚", 5);
		rgMap.put("费媛媛", 8);
		//创建大集合
		HashMap> bighm = new HashMap>();
		bighm.put("信息安全", aqMap);
		bighm.put("软件工程", rgMap);
		//遍历集合时先遍历大集合,获取键值
		Set keySet = bighm.keySet(); 
		for(String bigKey:keySet){
			System.out.println(bigKey);
			//大集合的值是每一个小集合,拿出小集合 ,即根据键获取值
			HashMap  hm = bighm.get(bigKey);
			Set keySet2 =hm.keySet();
			for(String minKey:keySet2){
				System.out.println("\t"+minKey+"----"+hm.get(minKey));
			}		
		}	
	}
}
JavaSE基础Map集合_第2张图片


你可能感兴趣的:(JavaSE基础Map集合)