集合――>心德总结(一)

2014-11-24 09:26:36 · 作者: · 浏览: 5
一、集合类与数据容器
1、集合与数组的特点:
集合只存储对象,是一个容器,用于存放对象,长度可变,要存储基本数据需先转换为对象
数组可存对象,也可是基本数据,长度不可变,是一个容器
2、 Java用集合类来容纳不同种类的数据,这种容纳是建立在未知的基础上,即Java要用有限种类的集合类,来容纳无限种类的数据对象。
3、 分类:Java的集合类可以分为三类:集、列表和映射
(1)集(Set):和数学上的“集合”概念相对应,是最简单的一种集合。
Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序。
Set集合中不包含重复元素,即任意的两个元素e1和e2都有e1.equals(e2)=false,并且最多有一个null元素。
(2)列表(List)
List列表区分元素的顺序,即List列表能够精确的控制每个元素插入的位置,用户能够使用索引(元素在List中的位置)来访问List中的元素。List允许包含重复元素,可以通过角标操作。
(3)映射:保存的是“键-值”对信息,即Map中存储的每个元素都包括起标识作用的“键”和该元素的“值”两部分,查找数据时不需提供相应的“键”,才能查找到该“键”所映射的“值”。因此,Map集合中不能包含重复的“键”,并且每个“键”最多只能映射一个值。
二、Collection接口
Java.util.Collection接口是最基本的集合接口,是根接口,方法不能实现,只能在子类中实现。定义了集合操作的普遍方法。
public booleanadd(E e) :向集合添加一个元素,成功返回true,否则返回false,子接口中此方法发生了变化,set接口中添加重复元素时会被拒绝并返回false,而list接口则会接受重复元素并返回true。
public boolean addAll(Collection< extends E> c) :将指定集合中的所有元素都添加到此集合中
public voidclear():移除此集合中的所有元素(可选操作)。
public booleancontains(Object o) :如果此集合包含指定的元素,则返回 true。
public booleancontainsAll(Collection< > c) :如果此集合包含指定集合中的所有元素,则返回 true。
public booleanequals(Object o) :比较此集合与指定对象是否相等。
public inthashCode() :返回此集合的哈希码值。
public booleanisEmpty() :如果此集合不包含元素,则返回 true。
publicIterator iterator() :返回在此集合的元素上进行迭代的迭代器。
public booleanremove(Object o) :从此集合中移除指定元素的单个实例,如果存在的话
public booleanremoveAll(Collection< > c) :移除此集合中那些也包含在指定集合中的所有元素
public booleanretainAll(Collection< > c) :仅保留此集合中那些也包含在指定集合的元素
public intsize() :返回此集合中的元素个数。
public Object[]toArray() :返回集合中所有元素的数组。
需注意:
Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”。
Collection接口有多个子接口,其中最重要的两个java.util.Set和java.util.List分别描述集Set和列表List。
三、列表
java.util.List接口描述的是列表结构,允许程序员对列表元素的插入位置进行精确控制,并增加了根据元素索引来访问元素、搜索元素等功能。在继承父接口Collection的基础之上,List接口新增的相应方法:
void add(intindex, E element) 在列表的指定位置插入指定元素
boolean add(E e)在列表的指定位置插入指定元素
E remove(intindex) 删除指定索引号元素
booleanremove(Object o) 删除第一个指定内容的元素
E get(int index)返回列表中指定位置的元素
int size() 返回列表中的元素数
intindexOf(Object obj) 如找到指定元素,返回索引值,否则返回—1
ListsubList(int fromIndex, int toIndex) 返回列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分视图。
void clear()从列表中移除所有元素
Java.util.List接口的实现类有多个,分别体现了列表的不同分化形式。
ArrayList
Vector
Stack
LinkedList
四、Vector类:(底层数据结为数组,存储,查找慢)
构造方法:
Vector() :构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。
Vector(Collection< extends E> c) :构造一个包含指定 collection 中的元素的向量,这些元素按其 collection 的迭代器返回元素的顺序排列。
Vector(int initialCapacity) :使用指定的初始容量和等于零的容量增量构造一个空向量。
Vector(int initialCapacity, intcapacityIncrement) :使用指定的初始容量和容量增量构造一个空的向量。
方法:
void addElement(E obj) :向Vector中添加元素
void insertElementAt(E obj, int index) :在指定索引处添加元素
void setElementAt(E obj, int index) :替换指定所引出元素
boolean removeElement(Object obj) : 删除指定队象元素
voidremoveElementAt(int index) :删除指定索引的元素
void removeAllElements() :删除所有元素 E elementAt(int index)
int size() :获取当前Vector的长度。
五、先进后出的Stack类(堆栈)
Stack是Vector类的子类,特点:“后进先出”(Last In First Out)类型的容器,即最后一个被“压(push)”进堆栈中的对象,会被第一个“弹(pop)”出来。
只可以从堆栈的顶端,执行从堆栈里弹出元素和压入元素的动作
构造方法
Stack() :用于创建支持“后进先出”访问方式的对象
方法
E peek() 返回栈顶元素,但没有弹出栈顶元素
E pop() 弹出栈顶元素,并返回其中的对象。
E push(E item) 向堆栈顶端压入item对象,同时将item对象返回。
boolean empty() 判断堆栈是否为空,如果该堆栈为空,返回true,反之返回false。
Push和pop是两个重要方法,反映了堆栈“后进先出”的重要特性
六、LinkedList类
构造方法:
LinkedList() :构造一个空列表。
LinkedList(Collection< extends E> c):构造一个包含指定 collection 中的元素的列表,这些元