您的位置:首页 > 职场人生

黑马程序员——Java基础——Collection集合的总结

2015-06-19 18:08 573 查看
android培训java培训期待与您交流!



Collection集合总结

Collection 是单列集合的根接口

----------------------| List实现了List接口的集合其特点元素存储和获取有序的元素可重复

----------------------------| ArrayList

底层数据结构是Object数组,特点:查询快,增删慢。

线程非安全,效率高

----------------------------| Vector

底层数据结构是Object数组,特点:查询快,增删慢。

线程安全,效率低

---------------------------| LinkedList

底层数据结构是链表数据结合,特点:查询慢,增删快。

线程非安全,效率高

-----------------------| Set实现了Set接口的集合其特点元素存储和获取是无序的,元素是唯一的不可重复

---------------------------| HashSet

底层数据结构是哈希表。

HashSet依赖两个方法:hashCode()和equals()来判断是否是重复元素

---------------------------------------| LinkedHashSet底层数据结构是链表和哈希表

由链表保证元素的存储与获取有序

由哈希表保证元素唯一的不可重复的

----------------------------| TreeSet

底层数据结构是红黑树。TreeSet通过两种方式进行排序:

第一种:自然排序

第二种:比较器排序

TreeSet通过返回值是否是0来判断是否是重复元素

集合与数组都是存储数据的容器他们之间有什么区别?

1、 长度的不同:

数组的长度是固定的,集合的长度是可变的。

2、 内容的不同

数组可以存储基本数据类型也可以是引用数据类型,集合只能存储引用数据类型。

3、 元素的不同

数组只能存储同一种数据类型,而集合可以存储多个不同的数据类型。

集合的体系结构:

由于需求不同,java给我们提供了很多集合类,这些集合类的数据结构不同,而我们要给这些集合类提供存储和遍历功能的,我们把他的功能不断的向上提取出来,这样就形成了集合的体系结构。

集合的种类有很多我们该如何选择呢?

一般我们选择集合是根据开发的需求,如果增删比较多的项目就选择LinkedList集合,如果查找获取比较多的那么就选择ArrayList集合。如果需要对元素进行排序和清除重复元素就需要使用Set接口的实现类集合。

Collection 接口集合的方法:

增加的方法:

add() 添加元素

addAll(Collection<? extends E> c) 添加指定集合中的所有元素到另一个集合中

删除的方法:

clear() 清空集合中的所有元素

remove(Object o) 删除集合中指定的元素

removeAll(Collection<?> c) 删除两个集合的交集元素

retainAll(Collection<?> c) 删除集合中与指定集合所有不同的元素,只保留两个集合的交集元素

判断的方法:

contains(Object o) 判断集合是否包含指定的元素

containsAll(Collection<?> c) 判断集合是否包含指定集合的所有元素

isEmpty() 判断集合是否为空

size() 获取集合的长度

迭代的方法:

iterator() 遍历集合中的所有元素

toArray() 把集合转成数组

hasNext() 判断游标是否指向了一个元素

next() 抓取当前游标指向的元素,然后游标向下移动一个单位

remove() 移除迭代器最后一次返回的元素

add(E e) 在迭代到的元素后面位置添加元素到集合中

注意: 迭代器是依赖集合而存在的,因为集合在迭代的过程中不能添加删除或者修改元素,所以只能通过迭代器的添加删除修改方法,修改集合中的元素。

List接口特有方法:

获取的方法:

indexOf(Object o)获取指定元素第一次出现的索引值

astIndexOf(Object o)获取指定元素最后一次出现的索引值

get(int index)获取指定索引值的元素

subList(int fromIndex, int toIndex) 指定开始开始索引值和结束索引值截取集合中的元素

修改的方法:

set(int index, E element)根据指定的索引值修改集合中的元素

迭代的方法:

listIterator() 继承了Iterator 接口,实现了服接口的所有方法并添加了自己特有的方法

listIterator的方法:

hasPrevious()判断向上是否有元素

previous() 向上获取元素并把游标向上移动一个单元

LinkedList特有的方法:

增加的方法:

addFrist() 添加元素到集合的第一个位置

addLast()
添加元素到集合的最后一个位置

获取的方法:

getFirst() 获取集合的第一个元素

getLast()
获取集合的最后一个元素

删除的方法:

removeFirst()
获取集合的第一个元素

removeLast()
获取集合的最后一个元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: