标签:
Day 19 Map
一,虽然在Collection的下边,但是他在API里边确是单独的一个类;
二,Map 在存储的时候和collection 不一样:
Collection只能存储一个对象(也称为单列集合);
Map 是键值映射的,一一对应.(也称为双列集合);
三,map 接口中的方法: 常用的:
1,put (K,V) 将键值对存储到集合; 如果存储重复键,原来的键会被覆盖.
2,get(K) 传递键,返回这个键所对应的值(区分大小写);如果没有返回null
3,接口判断方法 Boolean containsKey (K) 判断有没有这个键 Boolean containsvalue(V) 判断有没有这个值
4,remove 移除这个键 移除谁,返回谁 没有返null
5,values(); 返回值collection
将map中的值存储到collection中去 重要的一点:
Map的迭代方式:
keyset HashMap <Sring,String> map = new HashMap <Sring,String>();
Set.put(“A”,”1”);
…………….
Set<String> set = map.keySet();
Iterator <String>it = set.iterator();
While(it.hashNext()){
String key = it.next();
String value = map.get(key);
syso(key+value); }
第二种方法:利用键值的映射关系
map.Entry map的内部类实现
HashMap <Sring,String> map = new HashMap <Sring,String>();
Set.put(“A”,”1”);
…………….
Set(Map.Entry<String,String>)set = map.entrySet();
Iterator <Map.Entry<String,String>> it = set.interator();
while(it.hashNext){
Map.Entry entry = it.Next();
String ket =entry.getKey();
String value = entry.getvalue();
syso(key+value); }
map的子类:
HashMap:允许用null键null值,线程不安全,运行速度快
LinkedHashMap:有序的,存取和迭代的顺序是一致的
TreeMap:存储到集合中的键是按照自然顺序排列的
HashTable不允许null值null键,线程安全,运行速度慢
HashTable的子类
prperitable:和IO流结合实现数据永久存储;键值都是String类型;
Collections 工具类专门用来操作集合,方法全部是静态的,直接用类名调用
几个常见的方法:
1,sort 对List集合进行排序,传递List集合
2,reversOrder:逆转对象的自然顺序,返回比较器对象
3,int benarySearch(List list , Object obj);集合折半查找,找不到返回负的插入点-1,(针对List集合的,因为只有List才会有索引);
ArrayList 工具类的另外一个用法:
asList把数组转成集合,返回List集合
注意: 1,数组变成集合之后不能修改集合的长度,但是可以使用reverse修改内容;
2,集合不收基本数据类型,所以要用基本类型的包装类.
标签:
原文地址:http://www.cnblogs.com/elevenliu/p/4705937.html