黑马程序员---Java集合框架(二)--Map

---------------------- android培训java培训、期待与您交流! ----------------------


Map集合:该集合存储键值对,一对一对往里存,而且要保证键的唯一性。

1.添加 put (Key k,Value val);
2.删除  clear(); remove(Object key);
3.判断  boolear containsKey(Object key);boolear containsValue(Object value);
4.获取  get(Object key); size();values(); entrySet();keySet();


Map 接口

  |--Hashtable   底层是哈希表数据结构,不可以存入null键null值,该集合是同步的,线程安全的。
  |--HashMap   底层是哈希表数据结构,允许使用null键和null值,该集合是不同步,线程不安全。效率高
  |--TreeMap   底层是二叉树据结构,线程不同步,可以用于给map集合中的键进行排序。


可以发现Map和Set很像,其实Set的底层使用了Map集合


注意:
put方法,添加元素时,添加相同的键,那么后添加得值会覆盖原有的键对应的值,并且put方法会返回被覆盖的值。


map集合的两种取值方式;
1.keySet  将map中所有的键存入到Set集合中(Set set = map.keySet();),因为Set具备迭代器。所以可以用迭代方式取出所有的键,再根据get方法获取每一个键对应的值 。
Set<String> keyset = map.keySet();
//有了Set集合。就可以获取其迭代器
Iterator<String> it = keyset.iterator();
while(it.hasNext()){
String key = it.next();
//有了键可以通过map集合的get方法取得其对应的值;
String value = map.get(key);
System.out.println("key:"+key+"---"+"value::"+value);
}
Map集合的取出原理:将map集合转成Set集合,然后利用Set集合的迭代器取出相应键对应map中的值。


2.entrySet。

Set<Map.Entry<k,v>>entrySet;将map集合中的映射关系存入到Set集合中。而这个关系的类型就是:Map.Entry(Map.Entry是一个对象,就像Student对象一样)。Map.Entry 其实Entry也是也接口,他是Map接口中的一个内部接口。
interface Map
{
public static interface Entry
{
public abstract Object getKey();
public abstract Object getValue();
}
}


HashMap 实现了这两个接口
class HashMap implements Map
{
class Hash implements    Map.Entry
{
 public Object getkey(){ };
 public Object getValue(){ };
}
}

---------------------- android培训java培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值