Map:一次添加一对元素,Collection一次添加一个元素
Map也称双列集合,Collection集合称为单列集合。
Map集合中存储的就是键值对,Map集合必须保证键的唯一性。
常用的方法:
1. 添加 value put(Key,value);返回的是上一个和key键关联的值。如果没有则返回null
2. 删除:
void clear();清空Map集合
value remove(Key);根据指定的key删除这个键值对,返回的是被删除以前的该键值。
3. 判断:
boolean containsKey(Object key):判断是否包含该键
boolean containsValue(Object value);判断是否包含这个值
boolean isEmpty();判断是否包含键值对的关系。
Value get(key);通过指定的键来获取该键对应的值,如果没有该键,则返回null,也可以通过返回值是null来判断是否包含指定的键
int size();获取键值对的个数。
5. 取出Map集合中所有的键值对的方法,例子
1 /* 2 3 * 取出map中所有的键值对, 4 5 */ 6 7 public static void show(Map<Integer,String> map) 8 9 { 10 11 map.put(8, "张三"); 12 13 map.put(7, "李四"); 14 15 map.put(2, "王五"); 16 17 map.put(1, "赵六"); 18 19 Set <Integer> set=map.keySet();//先通过KeySet方法获取到所有的键的Set集合 20 21 Iterator<Integer>it=set.iterator();//再用迭代器得到所有的键 22 23 while(it.hasNext()) 24 25 { 26 27 Integer key=it.next(); 28 29 String value=map.get(key); 30 31 System.out.println(key+" : "+value);//最后通过键得到所有的值 32 33 } 34 35 }
第二种方法:
1 //根据.entrySet();方法获取Map的键值对的内部接口映射对象的Set集合 2 3 Set < Map.Entry<Integer,String>> set=map.entrySet(); 4 5 Iterator< Map.Entry<Integer,String>>it=set.iterator();//迭代器迭代 6 7 while(it.hasNext()) 8 9 { 10 11 Map.Entry<Integer, String> mm=it.next(); 12 13 Integer in=mm.getKey();//获得键 14 15 String name=mm.getValue();//获得值 16 17 System.out.println(in+" : "+name ); 18 19 }
Map的常用子类:
Hashtable:内部结构是哈希表,是同步的,不允许null作为键,不允许null作为值
Properties:用来存储键值对模型的配置文件信息,可以和IO技术相结合。
HashMap:内部结构是哈希表,是不同步的,允许null作为键,允许null作为值
LinkedHashMap:具有可预知的迭代顺序
TreeMap:内部结构是二叉树,是不同步的,可以对Map集合中的键进行排序。,用法等同于父类
集合框架工具类
Collections是集合框架的工具类,它里面的方法都是静态的。
Collections.sort(List);可以对List集合进行自然顺序排序
Collections.sort(List<T> list,Comparator<? super T> c)根据指定的比较器产生的顺序对指定列表进行排序
Collections.reverseOrder();返回一个反转的比较器.
用法:
1 public static void main(String[] args) { 2 3 //传入比较器 4 5 TreeSet <String> ts=new TreeSet<String>(Collections.reverseOrder()); 6 7 ts.add("erfd"); 8 9 ts.add("abc"); 10 11 ts.add("mnbv"); 12 13 ts.add("igdf"); 14 15 ts.add("thmj"); 16 17 System.out.println(ts);//TreeSet将逆序输出 18 19 }
替换元素:
Collections.replaceAll(List<T> list,T oldVal, T newVal)
随机打乱元素:
Collections.shuffle(List<?> list, Random rnd)
. . . . . . . . . .
Arrays:也是集合框架的工具类,里面的方法都是静态的。
List asList(数组);将数组转成集合。可以使用集合的方法操作数组中的元素。
注意:数组的长度是固定的,不可以使用增删方法,否则会发UnsupportedOperationException异常。
如果数组中的元素是对象,那么转成集合时,直接将数组中的元素作为集合中的元素进行集合存储。如果数组中的元素是基本类型数值,那么会将数组作为集合中的元素进行存储。
将集合转成数组使用Collection接口中的toArray方法,集合转成数组可以对集合中的元素的操作方法进行限定,不允许对其进行增删
toArray需要传入一个指定类型的数组,如果数组的长度小于集合的size()那么该方法会创建一个同类型,并和集合长度相同的数组,如果长度大于集合的size(),那么该方法会使用指定的数组,存储集合中的元素,其他位置默认为null,所以数组的长度最好就是集合的size();
黑马程序员技术博客---------集合Map,布布扣,bubuko.com
原文:http://www.cnblogs.com/CharType/p/3585545.html