黑马程序员——集合类(三)

来源:互联网 发布:陌陌防封软件 编辑:程序博客网 时间:2024/06/07 10:48

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

Map集合

Map区别于Collection集合,它一次存储2个对象是双列集合,一个为Key,一个为值。

HashMap底层使用的是哈希算法去除重复的元素,线程是不安全的,但是效率高,不过是无序的。

HashMap还有一个子类LinkedHashMap.它的底层和HashMap一样也是通过哈希算法去除重复的,不过它是怎么存入怎么取。

TreeMap底层使用的是二叉树,可以通过比较器Comparator或者实现Comparable接口自定义排序方式。

Hashtable它是集合的早期版本,功能类似于HashMap,线程是不安全的,效率较低,还有就是它的值和键都不能为null.

Map集合主要的特点是一次性存入键和值俩个对象,并且集合中的键是唯一的,所以说可以通过键值来查找对象

Map集合中的方法。

put() 存储一条记录, 一个键和一个值

get() 根据键对象获取值

containsKey() 判断是否包含指定的键

containsValue()判读是否包含这个值

remove(key) 根据键删除所属对象

迭代Map集合方法

1.先调用keySet()方法从Map集合中获取所有key组成的一个Set集合,迭代集合可以得到每一个key,然后再

通过get()方法的键获取每一个Value.

2.其次,先调用entrySet()方法从Map集合中获取所有Entry(键值对)组成的一个Set集合然后调用getKey()和

getValue方法得到每一个键和值

 在使用HashMap存储键值对的时候, 先调用Key对象的hashCode()方法计算一个哈希值, 在Map中查找是否

有相同哈希值的Key对象 

如果没有哈希值相同的Key对象, 这个键值对直接存入

如果有哈希值相同的Key对象, 那么就进行equals比较

比较是结果是false时,存入键对象,如果是true则覆盖原Value

Collection和Collections的区别

Collection是单列集合的根据接口

Collections是一个工具类,里面所有的方法都是静态的,为集合提供服务的

sort()对指定列表按升序进行排序。

sort(List<T> list, Comparator<? super T> c)对指定的列表用我们指定的方式排序

reverseOrder()返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序

reverseOrder(Comparator<T> cmp)返回一个比较器,它强行逆转指定比较器的顺序。也可用作参数的形式传给TreeSet

max和min//max(list)//max(list,比较器);

binarySearch()对有序的集合二分查找

fill(List<? super T> list, T obj)用obj将集合中的元素替代

reverse(List<?> list)集合反转

swap(List<?> list, int i, int j);指定位置的交换

shuffle(List<?> list);对集合中的元素随机置换

replaceAll(List<T> list, T oldVal, T newVal)新元素替换老元素

synchronizedList(List<T> list)返回指定列表支持的同步(线程安全的)列表

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

0 0