Java中的集合类

  • 格式:doc
  • 大小:184.00 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java中的集合类

(Collection framework)我们在前面学习过java数组,java数组的程度是固定的,在同一个数组中只能存放相同的类型数据。数组可以存放基本类型的数据,也可以存入对象引用的数据。

在创建数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能改变,在许多应用的场合,一组数据的数目不是固定的,比如一个单位的员工数目是变化的,有老的员工跳槽,也有新的员工进来。

为了使程序方便地存储和操纵数目不固定的一组数据,JDK中提供了java集合类,所有java集合类都位于java.util包中,与java数组不同,java集合类不能存放基本数据类型数据,而只能存放对象的引用。

Java集合类分为三种

Set(集合):集合中对象不按特定的方式排序。并且没有重复对象,但它有些实现类中的对象按特定方式排序。--无序,不能重复

List(列表):集合中的对象按照检索位置排序,可以有重复对象,允许按照对象在集中的索引位置检索对象,List和数组有些相似。--有序,可以重复

Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复,它的有些实现类能对集合中的键对象进行排序。

Java的主要集合类的框架图

Collection和Iterator接口

在Collection接口中声明了适用于java集合(只包括Set和List)通用方法。

Collection接口的方法

方法描述

boolean add(Object o) 向集合中加入一个对象的引用

void clear( ) 删除集合中所有对象,即不再对持有对象的引用boolean contains(Object o) 判断在集合中是否含有特定对象的引用

boolean isEmpty() 判断集合是否为空

Iterator iterator( ) 返回一个Iterator对象,可用它来遍历集合中的元素boolean remove(Object o) 从集合中删除一个对象的引用

int size( ) 返回集合中元素的数目

Object [ ] toArray() 返回一个数组,该数组包含集合中的所有元素

Set接口和List即可都继承了Collection接口,而Map接口没有继承Collection接口,因此可以对Set对象和List对象调用以上方法,但是不能对Map对象调用以上方法。Collection接口的iterator()和toArray()方法多用于获得集合中的所有元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。

Iterator隐藏底层集合的数据结构,向客户程序提供了遍历各种类型的集合的统一接口。Iterator接口中声明了如下方法:

●hasNext():判断集合中的元素是否遍历完毕,如果没有,就返回true。

●next():返回下一个元素

●remove():从集合中删除上一个由next()方法返回的元素。

注意:如果集合中的元素没有排序,Iterator遍历集合中元素的顺序是任意的,并不一定与像集合中加入的元素的顺序一致。

Set(集)

Set是最简单的一种集合,集合中的对象不按特定方式排序,并没有重复对象。Set接口主要有两个实现类:HashSet类还有一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据结构,链表数据结构能提高插入核算出元素的性能。TreeSet类实现了SortedSet接口中,具有排序功能。

List(列表)

List的主要特征使其元素已先行方式存储,集合中允许存放重复对象。List接口主要的实现类包括:

●ArrayList—ArrayList代表长度可变的数组。允许对元素进行快速的随机访问,但是向

ArrayList中插入与删除元素的速度较慢。

●LinkedList—在实现中采用链表数据结构。对顺序访问进行了优化,向List中插入和

删除元素的速度较快,随机访问速度则相对较慢,随机访问是指检索位于特定索引位置元素。

Map(映射)

Map(映射)是一种吧键对和值对象进行映射的集合。它的每一个元素都包含一对键对象和值对象,而之对象仍可以是Map类型。以此类推,这样就形成了多级映射。向Map集合中加入元素时,必须提供一对键对象和值对象,从Map集合上检索元素只要给出键对象,就会返回值对象。

实例1

CollectionAll.java

package collection;

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.LinkedHashSet;

import java.util.LinkedList;

import java.util.List;

import java.util.Hashtable;

import java.util.Map;

import java.util.Set;

import java.util.SortedMap;

import java.util.SortedSet;

import java.util.TreeMap;

import java.util.TreeSet;

public class CollectionAll {

public static void main(String args[]){ List list1=new LinkedList();

list1.add("我");

list1.add("是");

list1.add("谁");

list1.add("我");

traverse(list1);

List list2=new ArrayList();

list2.add("你");

list2.add("是");

list2.add("谁");

list2.add("你");

traverse(list2);

Set set1=new HashSet();

set1.add("他");

set1.add("是");

set1.add("谁");

set1.add("他");

traverse(set1);

SortedSet set2=new TreeSet();

set2.add("您");