黑马程序员_对集合的小结并与Collections比较(第14天)

来源:互联网 发布:淘宝劲霸男装官方店 编辑:程序博客网 时间:2024/06/07 09:17

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

对集合中的关系及特性的简单小结:

Collection    (是接口,不断向上抽取的顶层父类,是集合框架)

    丨----List 集合,元素是有序的,元素可以重复,因为该集合体系有索引

          丨----ArrayList:底层的数据结构是数组结构,其查询速度快,但是增删稍慢,线程是不同步的。

          丨----LinkedList:底层使用的是链表数据结构,增删速度快,但查询稍慢。

          丨----Vector:底层是数组数据结构,线程是同步的。

    丨----Set集合,元素是无序的,元素不可以重复

          丨----HashSet:底层数据结构是哈希表,线程是不同步的。

          丨----TreeSet:用于对集合中的元素进行排序。

Map      (该集合用于存储键值对。而且键是唯一的。)

    丨----HashTable:底层数据结构是哈希表,不可以存入null键和null值。该集合线程是同步的,效率低。

    丨----HashMap:底层是哈希表数据结构,允许使用null键和nul值,该集合线程是不同步的,效率高。

    丨----TreeMap:底层是二叉树数据结构。线程是不同步的,用于给Map集合排序。

Collection与Collections的比较:

Collection 是接口,不断向上抽取的顶层父类,是集合框架。

Collections(集合工具类)把非同步集合转成同步集合。
Collections里面的一些操作集合的方法,也就是用来操作集合的:
1,static void sort(List):可以对List集合中的元素进行排序。
static
<T extends Comparable<? super T>> void
sort(List<T> list) 根据元素的自然顺序 对指定列表按升序进行排序。
static
<T> void
sort(List<T> list, Comparator<? super T> c) 根据指定比较器产生的顺序对指定列表进行排序。
只能对List集合用sort方法排序。

2,二分查找:
static
<T> int
binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二分搜索法搜索指定列表,以获得指定对象。
static
<T> int
binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 使用二分搜索法搜索指定列表,以获得指定对象。
只能对List集合二分查找。
static int binarySearch(list,key):
可以对list集合进行二分查找(折半查找).注意: 被查找的list集合中的元素必须有一个具体顺序。有序并不是指存入和取出的顺序,指的是元素必须按照指定的方式排序。

3,static void fill(list,obj):将list集合中的元素都替换成指定元素obj.

4,static Object max(Collection):获取Collection集合中的最大值。
根据自然顺序获取最大值,还有可以根据指定的比较器所产生的顺序获取最大值。
static
<T> T
max(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定比较器产生的顺序,返回给定 collection 的最大元素。

static Object min(Collection):获取Collection集合中的最小值。
static
<T> T
min(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定比较器产生的顺序,返回给定 collection 的最小元素。
根据比较器所产生的顺序获取最小值。

5,static boolean replaceAll(List,old,new):对list集合中的指定元素进行替换。

6,static void reverse(list):对list集合中的元素进行反转。

7,static void shuffle(list):对list集合中的元素进行位置随机置换。

8,
static
<T> Comparator<T>
reverseOrder() 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
static
<T> Comparator<T>
reverseOrder(Comparator<T> cmp) 返回一个比较器,它强行逆转指定比较器的顺序。

static Comparator reverseOrder():对具备比较性的元素排序,进行顺序的逆转。
static Comparator reverseOrder(comparator):对指定的比较器进行顺序的逆转。TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new ComparatorByLength()));