java中的集合类

来源:互联网 发布:淘宝小号如何快速上心 编辑:程序博客网 时间:2024/04/28 12:54

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”

原创粉丝点击