2015日记补充(二)

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

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

1.添加:
put(K key,V value)
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()
enteySet()
keySet()
二、Map结构
Map 
          |--Hashtable:底层是hash表数据结构,不可以存入null键和null值。该集合是线程同步。JDK1.0.
          |--HashMap:底层是哈希表数据结构,并允许存入null键null值。该集合是线 程不同步的。Jdk1.2出现,效率较高。
          |--TreeMap:底层是二叉树模型结构。线程不同步,允许键入null键和null值,可以给 Map集合中的键排序,和set很像。
其实Set底层就是使用Map集合。
import java.util.×;
class MapDemo
{
public static void main(String[] args)
{
Map<String,String> map=new HashMap<String,String>();
map.put("01","zhangsan01");
                map.put("02","zhangsan02");
map.put("03","zhangsan03");
System.out.println("containsKey:"+map.containsKey("02");//可以通过get方法的返回值来判断个键是否存在。通过回null来判断。
  //获取map集合中的所有的值
Collection<String> coll=map.values();
//添加元素,如果出现元素相同的键,那么后添加的键会覆盖原有的键对应值。并且put方法会返回被覆盖的值。
}
}
三、map集合的两种取出方式:
1.keySet:将map集合中所有的键存入到Set集合中。因为Set具备迭代器,所有可以用迭代器的方法取出所有的键,再根据get 法,获取每一个键对应的值。
map集合的取出原理:将map集合成Set集合,再通过迭代器取出。
2.entrytSet:Set<mp.entry<k,v>> entrySet:将集合中的映射关系返到Set集合中,而这个关系的数据类型就是Map。Entry。
Set<String> keySet();
Iterator it=keySet.iterator();
while(it.hasNext)
{
String key=it.next;
System.out.println("key:"+ key);
//有了键就可以通过map集合的get方法获取其对应的值。
String value=map。get(key);//get()返回value类型的值。
}
map(堆)
 01 s1
 02 s2
  
  
  
keySet
 01
 02
 再通过Set集合的迭代器取出Set集合中的键。
通过map集合的get(key)方法获取键对应的值。
//将集合中的映射关系取出,存入到Set集合中。
Set<Map.Entry<String,String>>  entrySet=map。entrySet();
Iterator<Map.Entry<String,String>> it=entrySet。iterator();
while(it。hasNext)
{
Map.Entry<String,String> me=it.next;
String key=me.getKey();
Sring value=me.getValue();]
System.out.println(key+"::"+value);
entrySet():将Map集合中的映射关系取出,这个关系就是Map.Entry类型。那么关系对象map。Entry获取到后,就可以通过getKey()和getValue()方法获取关系中的键和值。
Map.Entry其实Entry也是一个接口,它Map接口中的一个内部接口。
 interface Map
{
public static interface Entry
{
public abstract object getkey();
public abstract Object getValue();
}
}     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值