黑马程序员 Java基础——Collection接口

来源:互联网 发布:商家如何退出农村淘宝 编辑:程序博客网 时间:2024/05/17 13:39

------- <a href="http://www.itheima.com" target="blank">android培训</a><a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

集合

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式。

数组和集合的不同之处:

    数组虽然也可以存储对象,但长度是固定的;可以存储任意数据类型。

    集合长度是可变的。集合只能存储对象。

集合的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

集合及其子集合:

 

                              Collection

 

 

             List                                                  Set

 

 

 

ArrayList      LinkedList   Vector                           HashSet       TreeSet

 

这里Collection是老大,具有子类所以的基本方法和功能,学习中,先掌握老大的方法后,再去学习ListSet会更加熟练,只需掌握他们的特有功能即可。同理,相对于他们,子类也只需掌握特有方法和功能。

 

 

 

Collection

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

    |--ArrayList:底层的数据结构是数组结构。特点:元素的查询速度很快,但是增删稍慢。线程不同步。

    |--LinkedList:底层的数据结构是链表数据结构。特点:查询速度慢,但是增删操作快速。

    |--Vector :底层是数组数据结构。线程同步。被ArrayList替代了。

 

 

 |--Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复。

     |--HashSet:底层数据结构是哈希表。    线程是非同步的

     |--TreeSet:可以对Set集合中的元素进行排序。底层数据结构是二叉树

 

 

Collection中的常用方法:

 

 

添加功能(修改功能):

boolean add(Object o):该方法用于向集合里面添加一个元素,若集合对象被添加操作改变了,返回true.

boolean addAll(Collection c):把集合c里面的所有元素添加到指定集合里面去,如果集合对象被添加操作改变了返回true.

 

删除功能:

void clear():清除集合里面的所有元素,将集合长度变为0

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

boolean removeAll(Collection c):从集合中删除集合c里面的元素。若删除一个或以上返回true

 

判断功能:

boolean contains(Object o):返回集合里是否包含指定的元素。

boolean containsAll(Collection c):返回集合里是否包含集合c内所有的元素。

boolean isEmpty():返回集合是否为空(长度是否为0)。

 

获取功能:

Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。

boolean retainAll(Collection c):从集合中删除集合c里不包含的元素。

int size():得到集合元素的个数。

Object[] toArray():把集合转成一个数组,所有集合元素变成数组元素。

 

 

 针对Collection集合我们到底使用谁呢?
唯一吗?
是:Set
排序吗?
是:TreeSet
否:HashSet
如果你知道是Set,但是不知道是哪个Set,就用HashSet。

否:List
要安全吗?
是:Vector
否:ArrayList或者LinkedList
查询多:ArrayList
增删多:LinkedList
如果你知道是List,但是不知道是哪个List,就用ArrayList。


如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。
如果你知道用集合,就用ArrayList。

 

 总结:

Collection集合遍历的时候,可以用itrator遍历器,因为这是集合的专用遍历器,而增强for数组和集合都能用,但是用增强for的时候,应该先判断遍历对象是否为null。

0 0
原创粉丝点击