用一个集合这么难?

 

集合

 

 


有序否

允许元素重复否

Collection

List

Set

AbstractSet

HashSet

TreeSet

是(用二叉树排序)

Map

AbstractMap

使用key-value来映射和存储数据,Key必须惟一,value可以重复

HashMap

TreeMap

是(用二叉树排序)

 

目的:

用数组存储数据时只能具有简单的组织形式,而且大小有时候也不确定的需求也无法满足,因此需要具有更多操作的集合来进行数据存储

分类:

Vector(矢量)

Bitset(位集)

Stack(栈)

Hashtable(散列表):

在散列表中有一系列问题,再存入一个对象充当key的时候,存入方式的…

缺点:

  1. 由于对于通用性的考虑,集合存储对象时,会丢弃对象的类型,任何对象都可以进入集合
  2. 正式使用之前,必须进行“造型”,指定对象的类型

Collection接口方法:

 

基本操作

boolean add(Object element)

添加一个元素

boolean remove(Object element)

删除一元素

查询操作

int size()

返回元素数目

boolean isEmpty()

判断是否为空

boolean contains(Object element)

判断是否包含某元素

Iterator iterator()

创建一个迭代器

组操作

boolean containsAll(Collection collection)

另一集合是否是当前集合的子集

boolean addAll(Collection collection)

void clear()

删除所有元素

void removeAll(Collection collection)

去除集合的一个子集

void retainAll(Collection collection)

保留集合的一个子集

Iterator迭代器:

boolean hasNext()

判断是否有元素可以迭代

E next()

返回迭代的下一个元素

void remove()

移除迭代器返回的最后一个元素

 

List接口方法:

基本操作

void add(int index, Object element)

在指定位置添加一个元素

boolean remove(int index)

删除一个指定位置的元素

E set(int index, E element)

用指定元素替换指定位置的元素

查询操作

Object get (int index)

获取指定位置的元素

int indexOf(Object element)

获取指定元素的第一次出现的位置

int lastIndexOf(Object element)

获取指定元素的最后一次出现的位置

组操作

Object set(int index, Object element)

将index位置上的对象替换为指定元素并返回老元素

List  subLIst(int fromIndex, int toIndex)

返回一个[fromIndex,toIndex)的子列表

迭代器

ListIterator listIterator ()

返回一个默认开始位置为0的迭代器

ListIterator listIterator(int startIndex)

返回一个开始位置为startIndex迭代器

ListIterator迭代器:

void add(E e)

将指定的元素插入列表

E previous()

返回列表的前一个元素

boolean hasPrevious()

逆向迭代列表,查看是否有多个元素

int nextIndex()

 返回下一个元素的索引

int previousIndex()

返回前一个元素的索引

void set(E e)

替换迭代器返回的最后一个元素

 

 

ArrayList和LinkedList的区别:

 

简述

实现 

操作特性 

List

提供基于索引的对成员的随机访问 

ArrayList 

提供快速的基于索引的成员访于索引的成员访问,对尾部成员的增加和删除支持较好 (随机访问)

LinkedList 

对列表中任何位置的成员的增加和删除支持较好,但对基于索引的成员访问支持性能较差(随机存取)

 

 

posted @ 2014-06-07 13:15  RainFool  阅读(217)  评论(0编辑  收藏  举报