Map

Map<K,V>:双列集合,一次存一对,键值对。要保证键的唯一性。


1、共性功能:

        (1)添加  V put(key,value) 该方法返回上一个此位置的值   void putAll(Map<K,V> map)

        (2)删除  void clear()      V remove(key)

        (3)判断  boolean containsKey(object)     boolean containsValue(object)     boolean isEmpty()

        (4)获取  V get(key)    int size()


2、特有功能:

        (1)Set<K> keySet() : 取出所有的键,并存储到Set集合中

           *遍历Map集合:用keySet(),在用迭代器方式

        (2)Set<Map.Entry<K,V>> entrySet()  :获取键-值对象的集合

                    Map.Entry<K,V> :Map接口中的静态内部接口。键-值映射的数据类型(将键和值合成一个对象,记录的是键和值的引用)

                               Entry<K,V>接口的中方法 getKey()    getValue()

         (3)values() : 用迭代器遍历所有值


3、Map的具体类型:

         (1)HashTable:哈希表,线程同步,不允许null键,null值。

         (2)HashMap:哈希表,线程不同步,允许null键,null值。

         (3)TreeMap:二叉树,线程不同步,可以对map集合中的键进行排序。


4、遍历HashMap存储的自定义对象

 

                Map<Employee,String> map = new HashMap<Employee,String>();
		map.put(new Employee("xiaoming",24),"北京");
		for(Employee employee:map.keySet()) {
			String value = map.get(employee);
			System.out.println(employee.getName()+":"+employee.getAge()+"..."+value);
		}

*若想保证键的唯一性,则需要重写键对象的HashCode()


5、遍历TreeMap存储的自定义对象:

                Map<Employee,String> map = new TreeMap<Employee,String>();
		map.put(new Employee("xiaoming",24),"北京");
		for(Map.Entry<Employee, String> me : map.entrySet()) {
			Employee key = me.getKey();
			String value = me.getValue();
			System.out.println(key.getName()+"::"+key.getAge()+"......"+value);
		}

*必须保证entrySet对象的键对象、值对象,还有map的值对象都实现Comparable接口


6、LinkedHashMap<K,V> :具有可预知的迭代顺序


*当需求中出现映射关系时,应该最先想到map集合



  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值