java基础第十六天

2017-03-21  本文已影响0人  红颜心雨

1.集合:可以存储一组数据类型不同的数据,并且元素个数不确定,可动态的对元素进行添加和删除

(1)Collection是集合的顶级父类,是接口,子接口:List和Set

List:有序可重复

Set:无序不可重复

List实现类:ArrayList(常用),LinkedList,vector

Set实现类:HashSet(常用),treeSet

(2)arrayList常用方法:

public int size();//返回列表中的元素个数

public Object get(int index);//返回指定位置的元素

public void set(int index,

Object obj);//设置指定位置元素

public void add(int index,

Object obj);//在列表指定位置插入元素

public void clear();//删除列表中所有元素

public void remove(int

index);//删除列表中指定位置元素元素

contains(Object obj);//判断列表中指定对象是否存在

isEmpty():如果此列表中没有元素,则返回true

indexOf(Objecto) :

返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回-1。

(3)ArrayList和LinkedList的区别:

arrayList底层实现用长度可变的数组,遍历元素和查找元素的效率比较高,插入元素的效率比较低,因为每次插入元素都需要检测数组的长度够不够,如果不够需要进行数据扩容,比较耗时,所以效率比较低

LinkedList使用链表存储数据,插入和删除的效率比较高,查找元素的效率比较低

(4)vector:线程安全的,老版本,基本上不用

(5)Set集合是无序不可重复,不可重复如何实现:

在往set集合添加数据的时候,首先要调用该对象的hashCode()方法,返回的hashCode值相等,

则会调用该对象的equals方法,如果equals返回的true的话,认为给集合中有该对象,添加失败。

如果调用该对象的hashCode()方法,返回的hashCode值不相等,不再调用equals方法,可以直接添加成功。

如果equals返回true,hashCode值一定相等,如果hashCode值相等,equals不一定是true;

(6)Collection和Collections的区别:

Collection:是集合的上级接口,继承他的子接口有:list,set

Collections:是集合的工具类,提供了一些操作集合的静态方法

(7)Iterator:迭代器

hasNext():如果仍有元素可以迭代,则返回true。

next():返回迭代的下一个元素。

Remove():从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

注意:用迭代器对集合进行遍历时,如果要对集合中的元素删除时,不能用集合的删除方法,可以用迭代器的删除方法

否则报:java.util.ConcurrentModificationException:并发修改的异常

上一篇 下一篇

猜你喜欢

热点阅读