ava用集合类来容纳不同种类的数据,这种容纳是建立在未知的基础上,即Java要用有限种类的集合类,来容纳无限种类的数据对象。
分类:Java的集合类可以分为三类:集、列表和映射
1集(set):和数学上的集合概念相对应,是最简单的一种集合。
Set集合中不区分元素的顺序;
Set集合中不包含重复元素;
2列表(list)(以线性方式储存,以数组,向量,链表)
List列表区分元素的顺序,list列表能够精确的控制每一个元素插入的位置,用户能够使用索引(元素在list中的位置)来访问list中的元素。和set集合的不同,list允许包含重复元素。
Java.util.Collection接口是最基本的集合接口,是描述Set和list类型的根接口
列表list
常用java.util.List接口
Void add(int index,E element):在索引号index后插入element对象。
Boolean add(E e):将对象e插入到链表对最后。
Eremove(int index):删除链表里的指定索引号的元素。
boolean removed(Object o):删除链表里第一个指定内容的元素。
E get(int index):得到链表里指定索引号的元素。如果没有用到泛型,那么此方法的返回值类型是)Object,所以在这种情况下要根据实际情况,把这个返回对象强制装换成它原来的类型。
Int size()返回链表中的元素个数,主要用在遍历链表的过程。
Int indexOf\(Object obj):如果在链表里找到了boj元素,则返回这个元素的索引值;反之,如果没有找到,这返回-1.
List<E> sublist(int fromIndex, int toIndex):得到链表里的从fromindex开始,到同Index结束的子链表。
Void clear():将链表里存储的元素全部清除,该方法一般在链表使用完成后调用。List接口的实现类有多个。
ArrayList
Vector
Stack
LinkedList
先进后出的Stack类
Stack是Vector类的子类,特点: “后进先出”(Last In First Out)类型的容器,即最后一个被“压(push)”进堆栈中的对象,会被第一个“弹(pop)”出来。
构造方法
Stack() :用于创建支持“后进先出”访问方式的对象
例:Stack st=newStack();
Stack <String> st = newStack();
其他方法
E peek() 返回栈顶元素,但没有弹出栈顶元素
E pop() 弹出栈顶元素,并返回其中的对象。
E push(E item) 向堆栈顶端压入item对象,同时将item对象返回。
boolean empty() 判断堆栈是否为空,如果该堆栈为空,返回true,反之返回false。
LinkedList类
1. 构造方法
LinkedList()
LinkedList(Coolection c)
LinkedList(<E> c)
Vector类
Vector类的构造方法
Vector():构造一个空的向量,并设置其初始内容为10,标准容量为0.
Ector(int initialCapacity):使用指定的初始容量和等于0的容量增量构造一个空的向量。
Vector(int initialCapacity,intcapacityIncrement):使用已知的初始容量和容量增量构造一个空的向量。在实际的项目应用中,此构造方法最为实用。
Vector(<E>c):该构造方法体现了java的新特性—————泛型(generic type)。只有在使用Vector前,明确知道其中容纳对象的类型,才可以使用这种类型的构造方法。
其他方法
addElement(E obj):向vector中添加元素。该方法同样体现了泛型特性。
InsertElemnetAt(E obj,int index):在指定索引出添加元素。通过该方法,可以把obj对象添加到参数指定的index索引处,此后的Vector对象里的各内容自动向后移动一个单位。
SetElementAt(E obj, int index):替换指定索引处元素。该方法同上面提到的inserElementAt方法很相似,只不过该方法替换指定索引处的原来元素,而不是添加。
Boolean removeElement(object obj):删除vector对象里的指定元素。通过该方法,可以删除Vetor中的第一个obj内容的对象。该犯法返回一个布尔类型的值,用来表示是否在vector里找到并删除指定对象。
Void removeElementAt(int index):删除指定索引的元素。
Void removeAllElements():删除Vector中的所有元素。通过该方法,可以删除Vector中的所有对象。操作完成后i,该Vecor对象的size重置为0;
Int size():获得vecotr当前的长度。通过该方法,可以统计出当前Vector中含有多少个元素。该方法的返回一个int类型的变量,通常用在遍历vector的场合下。
E elementAt(int index):一次访问Vector中各元素。可以通过该方法,将vector对象里索引号为i的元素以泛型或object类型返回。
实现了Set接口的类HashSet
“基于散列表”的检测重复元素的策略:HashSet里的元素值同这个元素在Set里所存放的索引位置有个对应关系(散列函数),在HashSet里插入元素前,可根据这个元素值和对应关系,计算出这个元素在HashSet里的插入位置,如果在这个位置里(或位置周围)已经存在了待插入元素的值,则不能插入。
构造方法
HashSet()
HashSet(<E> c)
其他方法
boolean contains(Object o) 判断是否存在指定元素
例10.6 HashSet类的综合应用。
Set<String> set = newHashSet<String>();
set.add("One"); set.add("One");
System.out.println(set.size()); //输出元素个数为:1
set.add(“Two”); System.out.println(set.size()); // 元素个数:2
System.out.println(set.contains(“One”)); //true,包含元素“One”