本文共 1691 字,大约阅读时间需要 5 分钟。
Collections:动态的存放多个对象。长度是可以改变的。两个常用的子接口如下:
集合List:存放的元素有序且允许有重复的集合接口。
List接口常用的实现类有ArrayList、Vector、LinkedList。
三者的区别:ArrayList :是使用数组结构实现的List集合,对于使用索引取出元素有较好的效率。但是插入删除的效率较慢。LinkedList是使用双向链表实现的集合,它的访问效率低,但是插入删除效率高。Vector是旧版的ArrayList,它大多数操作跟ArrayList相同,区别之处在于Vector是线程同步(安全的)的。
Set:存放的元素不包含重复的集合接口,根据每个对象的哈希码值用固定的算法算出它的存储索引,把对象存放一个叫散列表的相应位置中,在取对象时根据对象的哈希码值计算出它的存储索引,在散列表的相应位置上的元素间进行少量的比较操作就能找到它。
重复内容是指依据hashCode()和equals()两个方法区分的,它会先比较哈希值,然后再equals()比较。如果哈希值相等,equals返回true,则表示这两个对象是同一个对象。
参考文档JDK API 1.6
Collection接口定义的方法,这些方法被Set和List继承:
int size(); 返回此collection中的元素数
boolean isEmpty(); 判断此collection中是否包含元素。
boolean contains(Object obj); 判断此collection是否包含指定的元素。用集合中的元素依次.equals(传入contains方法的obj)
boolean containsAll(Collection c); 判断此collection是否包含指定 collection中的所有元素
boolean add(Objectelement); 向此collection中添加元素
boolean addAll(Collection c);将指定collection中的所有元素添加到此collection中
boolean remove(Object element); 从此collection中移除指定的元素。
boolean removeAll(Collectionc); 移除此collection中那些也包含在指定 collection 中的所有元素。
void clear(); 移除collection中所有的元素。
booleanretainAll(Collection c); 仅保留此collection中那些也包含在参数指定collection的元素。即从列表中移除未包含在指定 collection 中的所有元素.在调用的对象中只保留交集.如果操作成功,返回true
Iteratoriterator(); 返回在此collection的元素上进行迭代的迭代器。
Object[]toArray(); 把此collection转成数组。
通常使用Colleaction的实现类。比如List<String> list = newArrayList<String>();然后再向集合中添加元素,list.add(“a”);
子接口List中新增的方法,都是针对List的索引操作的:
Object get(intindex) 返回列表中指定位置的元素
Object add(intindex, Object element);指定的位置插入元素。
Objectset(int index, Object element) ;替换指定位置的元素
Objectremove(int index) 删除指定位置的元素
List subList(intfromIndex, int toIndex):返回部分List视图
int indexOf(Object o):元素第一次出现的下标
本文转自 墨宇hz 51CTO博客,原文链接:http://blog.51cto.com/zzhhz/1623554
转载地址:http://yojil.baihongyu.com/