您的位置:首页 > 编程语言 > Java开发

JAVA中的集合框架简介

2014-08-18 15:53 169 查看
本篇文章主要介绍JAVA中的集合框架。

下面开始介绍集合框架中常用的一些接口和类



1.      Collection:

Collection层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素

1)        List

List是Collection的一个子接口,List集合有几个特点:元素是有顺序的(存入顺序和取出顺序一致);可以存重复元素;该集合有索引;该集合判断元素是否相同,依据是equals()方法。

①  ArrayList

ArrayList是List接口的一个实现类。底层使用的是数组的数据结构,查询、修改快,增加、删除比较慢。该集合线程不同步。

②  LinkedList

LinkedList是List接口的一个实现类。底层使用的是链表的数据结构,查询、修改慢,增加、删除快。

③  Vector

Vector是List接口的一个实现类。底层使用数组的数据结构。和ArrayList类似,被ArrayList取代,但是该集合线程同步。

2)        Set

Set是Collection的一个子接口。Set集合的特点:元素无序(存入顺序和取出顺序不一定一致),不可以放重复元素。

特别说明:Set集合底层使用的是Map集合

①  HashSet

HashSet是Set接口的一个实现类。底层使用的是哈希表。判断元素唯一性的方法是先判断hashCode()方法是否一样,再判断equals()方法

②  TreeSet

TreeSet是Set接口的一个实现类。特点:可以对其中的元素进行排序。

排序方式有两种:第一种是让元素自身具备比较性,参加比较的元素实现Comparable接口,覆盖CompareTo()方法。第二种是让集合具备比较性,定义一个类实现Comparator接口,覆盖compare()方法,然后将该类的对象作为比较器传入TreeSet的构造函数中。

当两种比较方式都存在时,以比较器的比较方式为主。

2. Iterator

Iterator是一个接口。在Collection的实现类中,都有一个内部类,该内部类用于取出集合中的元素,这些内部类的特点是都实现了Iterator接口,对外提供iterator()方法,用于取得集合中存储的元素。该接口中只有三个方法:hasNext() 、next() 、remove()

ListItrator

ListIterator是Iterator的一个子接口,该接口弥补了Iterator的一些方法上的不足,该接口中有add(E e),set(E e),remove(),hasNext(),next(),hasPrevious(),previous()等,在取出元素的过程中可以进行对元素的操作。

3. Map

Map集合存储的是键值对,而且要保证键的唯一性

1) HashMap

Map接口的实现类。底层是哈希表,允许存入null键和null值,线程不同步。

2)  Hashtable

Map接口的实现类。底层是哈希表,不允许存入null键和null值,线程同步,被HashMap所取代。

3) TreeMap

Map接口的实现类。底层是二叉树,可以对其中的键进行排序,线程不同步。

4) Map集合的取出方式

Map集合有两种取出方式:keySet和entrySet

keySet是将map中的键存入Set集合,因为Set可迭代,然后用迭代出来的键进行取值

entrySet是将map中的映射关系存入Set集合,这个关系的数据类型就是Map.Entry

4.Collections

操作集合的工具类,里面的方法都是静态方法。

 常用方法:

Collections.sort(list):给List集合排序

Collections.sort(list,Comparator):按照比较器的规则给List集合排序

Collections.max(list):获取list集合中的最大元素

Collections.fill(list,e):把List集合中的元素都填充为e

Collections.reverse(list):将list集合反转

Collections.shuffle(list):将集合的顺序打乱

Collections.replace(index,e):将角标为index的元素替换为e

Collections.reverseOrder():传入集合的构造方法,强行反转顺序,也可以

Collections.reverseOrder(Comparator)强行反转比较器顺序

5.Arrays

操作数组的工具类,里面的方法都是静态方法

Arrays.toString(arr):将数组转成字符串

Arrays.asList(arr):将数组转成集合

list.toArray(new String[list.size]):将集合list转成数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: