---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!----------------------
在学习Map接口之前必须先了解泛型,泛型是用于解决安全问题,是一个类型安全机制。通过<>来定义要操作的引用数据类型,在集合框架中定义泛型用来确定数据类型,使得只有在传入数据类型正确的情况下,编译才可以通过。
Map接口:
1、Hashtable类:底层是哈希表数据结构,不允许使用 null 值和null 键。该集合是线程同步的,效率较低。
2、HashMap类:底层也是哈希表数据结构,允许使用 null 值和null 键,此类不保证映射的顺序,特别是它不保证该顺序恒久不变。该集合是线程不同步的,效率较高。
3、TreeMap类:底层是二叉树数据结构。该集合是线程不同步的,可以用于给Map集合中的键进行排序。
对于以上几个Map接口的子类,有一些共性方法:
1、添加:
put(Kkey, V value):添加时如果前后是相同的键,那么后添加的值会覆盖该键对应的原值。并且返回被覆盖的值。
putAll(Map<? extends K,? extendsV> m)
clear() :清除所有键值对。
remove(Object key):删除指定键对应的键值对。
containsValue(Object value)
containsKey(Object key)
isEmpty()
get(Object key) :获取对应键的值。可以通过这个方法的返回值来判断一个键是否存在,null为不存在。
size() :Map集合中键值对数量。
values():获取Map集合中所有的值。
keySet() :将Map中所有的键存入set集合。因为set具备迭代器,所以可以用迭代方法取出所有的键,再根据get方法获取每一个键对应的值。
Set<Map.Entry<k,v>>
另外,集合框架中还提供了两个工具类
工具类中提供的一般都是静态方法,可以直接通过类名.方法名调用。
Collections类中有以下方法:
sort(List<T>list):自然排序
sort(List<T>list,Comparator<? Super T>c):比较器排序
reverse():反转
reverseOrder():返回一个比较器,强行逆转自然顺序
reverseOrder(Comparator<T>
replaceAll():将所有为旧值的元素都用指定的新值替代
Arrays类是用于操作数组的工具类。
asList:将数组变成list集合,如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素;如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!----------------------