黑马程序员07_map

Map

概述:

Map集合:映射关系 ,也有人称为字典,Map集合里存在两组值,一组是key,一组是value。Map里的key不允许重复。通过key总能找到唯一的value与之对应。该集合存储键值对。一对一对往里存。而且要保证键的唯一性。

常用方法:

1、添加

put(K key, V value) 

 添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。

而且put方法会返回被覆盖的值。

System.out.println("put:"+map.put("01","zhangsan1"));//返回null

System.out.println("put:"+map.put("01","wnagwu"));//返回zhangsan1

putAll(Map<? extends K,? extends V> m) 

2、删除。

clear() 

remove(Object key)   //根据键来删除

3、判断。

containsValue(Object value) //是否包括某个值

containsKey(Object key)  //是否包括某个键

isEmpty() 

4、获取。

get(Object key) 

size() 

values()   //获取map集合中所有的值。Collection<String> coll = map.values()

entrySet() 

keySet() //返回值为set集合

Map体系

|--Hashtable:底层是哈希表数据结构,不可以存入nullnull值。该集合是线程同步的。jdk1.0.效率低。

|--HashMap底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。

|--TreeMap底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。 

Set很像。

其实大家,Set底层就是使用了Map集合。 

知识点一:map集合的两种取出方式

  • 方式1Set<k> keySet

map中所有的键存入到Set集合。因为set具备迭代器。所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。

HashMap<String,String> m = new HashMap<String,String>();
		m.put("001", "java001");
		m.put("002", "java002");
		m.put("003", "java003");
		m.put("004", "java004");
		m.put("005", "java005");
		m.put("006", "java006");
		System.out.println(m);
		Set<String> allKey = m.keySet();、
  //将Map集合中的映射关系取出。存入到Set集合中。
		Iterator<String> it = allKey.iterator();
		while(it.hasNext()) 
		{   //有了键可以通过map集合的get方法获取其对应的值。
  String key = it.next();
  String value = m.get(key);
			System.out.println("key:"+key+",value:"+value);
		}
  • 方式2Set<Map.Entry<k,v>> entrySet

map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.EntryEntry其实就是Map中的一个static内部接口。为什么要定义在内部呢?因为只有有了Map集合,有了键值对,才会有键值的映射关系。关系属于Map集合中的一个内部事物。而且该事物在直接访问Map集合中的元素。

利用Map.Entry()方法,定义麻烦,方法简单。

Set<Map.Entry<String, String>> entrySet = m.entrySet();
		Iterator<Map.Entry<String,String>> it = entrySet.iterator();
//	得到key和value的关系,该关系包含getKey和getValue方法
		while(it.hasNext())
		{
			Map.Entry<String,String> mm = it.next();
			System.out.println(mm.getKey());
			System.out.println(mm.getValue());
		}

Map.Entry讲解

Entry也是一个接口,它是Map接口中的一个内部接口。具体代码如下:

interface Map  //该接口可是实现获取键和值
{
	public static interface Entry
	{
		public abstract Object getKey();
		public abstract Object getValue();

	}
}

class HashMap implements Map
{
	class Hahs implements Map.Entry
	{
		public  Object getKey(){}
		public  Object getValue(){}
	}
	
}

  

posted @ 2014-03-10 21:36  让痛苦变成美好的回忆  阅读(122)  评论(0编辑  收藏  举报