黑马程序员-集合篇(3)

------- android培训java培训、期待与您交流!---------
map集合
Map集合:该集合存储键值对,保证元素的唯一性
map集合的常用方法
1.添加
put(K key,V value)
put(Map<? extends K,? extends V> m)
2.删除
clear()
remove(Object key)
3.判断
containsKey(Object Value)
containsKey(object key)
isEmpty()
4.获取
get(object key)
size()
values()

entrySet()
keySet()

Map
|---Hashtable
底层是哈希表数据结构,不可以存入null键值,该集合是线程同步jdk1.0,效率低
|---HashMap
底层是哈希表数据结构,允许使用null键值,该集合是不同步的jdk1.2效率高
|---TreeMap
底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序
和Set很像,其实Set底层就是使用了Map集合
实例1
<span style="font-size:18px;">import java.util.*;
class  MapDemo
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args) 
	{
		Map<Integer,String> map=new HashMap<Integer,String>();//创建key为Integer类型,value为String类型的集合对象
		//添加元素
		map.put(01,"zhangsan");
		map.put(02,"huanglei");
		map.put(03,"zhaojun");
		map.put(04,"heshen");

		sop("containsKey:"+map.containsKey(022));//返回false
		sop("remove:"+map.remove(011));//返回null
		sop("get:"+map.get(04));//返回heshen
		map.put(05,null);
		sop("get:"+map.get(05));//返回null,可以判断元素是否存在

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

		sop("coll..:"+coll);
		sop("map..:"+map);

	}
}</span>

map集合的两种取出方式
|---set<k> keySet()
将map中所有的键存入到Set集合。因为set具备迭代器
所有可以迭代方法取出的键,在根据get方法,获取每个键对应的值
Map集合取出的原理:将map集合转成set集合,再通过迭代器取出 
|---Set<Map.entry<k,v>> entrySet()
将map集合中的映射关系存入到set集合中,而这个关系的数据类型就是:Map.Entry()
<span style="font-size:18px;">import java.util.*;
class  MapDemo1
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args) 
	{
		Map<Integer,String> map=new HashMap<Integer,String>();//</span><span style="font-family: 微软雅黑;"><span style="font-size:14px;">创建key为Integer类型,value为String类型的集合对象</span></span><span style="font-size:18px;">
</span><span style="font-size:18px;">

		map.put(1,"zhangsan");
		map.put(2,"shanshan");
		map.put(3,"liangmei");
		map.put(4,"lili");
		
		//将map集合中的映射关系取出,存入到Set集合中 : entrySet()
		Set<Map.Entry<Integer,String>> entrySet=map.entrySet();
		Iterator<Map.Entry<Integer,String>> it=entrySet.iterator();//创建一个迭代器将所有集合取出
		while(it.hasNext())
		{
			Map.Entry<Integer,String> me=it.next();
			Integer key =me.getKey();
			String value=me.getValue();
			sop(key+".."+value);
		}
		
		/*
		//先获取map集合的所有键的Set集合,keySet()
		Set<Integer>keyset=map.keySet();
		//有了Set集合,就可以获取其迭代器
		Iterator<Integer> it=keyset.iterator();
		while(it.hasNext())
		{
			Integer key=it.next();
			//有集合的键,就可以通过集合的get方法获取其对应的值
			String value =map.get(key);
			sop("key:"+key+"..value:"+value);

		}
		*/
	}
}
/*
Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口

interface Map
{
	public static interface Entry
	{
		public abstract Object getKey();
		public abstract Object getValue();
	}
}
class HashMap implements Map
{
	class Demo implements MaP.Entry
	{
		public  Object getKey(){}
		public  Object getValue(){}
	}
		
}*/</span>




------- android培训java培训、期待与您交流!---------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值