java集合类详解和使用_Java 集合类详解

今天来看看“集合类”的概念。

集合可以看作是一个容器,比如,所有Java有关的书都可以看作是一个集合。对于集合中的各个对象很容易将其存放到集合中,也很容易将其从集合中取出来,还可以按照一定的顺序将其摆放。Java中提供了不同的集合类,这些集合类具有不同的存储对象的方式,并提供了相应的方法以方便用户对集合进行遍历,添加,删除,以及查找指定的对象。

集合类又被称作容器,提到容器大家很自然地就想到了数组,那么集合类和数组有哪些不同之处呢?首先,数组的长度是固定的,而集合的长度是可变的;其次,数组用来存放基本的数据类型,而集合用来存放对象的引用。常用的集合主要分为两大类,Map类和Collection类,Collection类又包括Set类和List类,它们之间的继承关系可以用下面的图来表示:

68bfdf3476ef0c6acd06a67b23f67ce1.gif

Collection接口是层次结构中的根接口,其构成单位称为元素。Collection接口通常不能直接使用,但提供了添加元素,删除元素,管理数据的方法。从上面的继承图可以看出,Set和List类继承了Collection接口,因此这些方法对Set和List类也是通用的。那么,接下来,我们看看Collection类的常用方法。

Collection集合的常用方法主要有以下几种:

boolean add(Object element); 向集合中添加元素

void clear(); 清空集合

boolean contains(Object o);  判断集合中是否包含某元素

boolean isEmpty();   判断集合中是否有元素

Iterator iterator();  获取集合所依赖的迭代器对象

boolean remove(Object o);   删除集合中某个元素

int size();  获取集合中元素的个数

Object[] toArray();  将集合转换成数组

接下来我们看这些方法的使用。看以下程序:

import java.util.*;

public class CollectionTest01{

public static void main(String[] args){

//1.创建集合

Collection c=new ArrayList();

//2.添加元素

c.add(1);

c.add(new Integer(100));

c.add(new Object());

Customer cus=new Customer("JACK",20);

//3.获取元素的个数

System.out.println(c.size()); //4

System.out.println(c.isEmpty()); //false

//4.将集合转换成Object类型的数组

Object[] objs=c.toArray();

for(int i=0;i

System.out.println(objs[i]);

}

//5.清空

c.clear();

System.out.println(c.size()); //0

//6.判断集合是否为空

System.out.println(c.isEmpty()); //true

}

}

class Customer{

String name;

int age;

Customer(String name,int age){

this.name=name;

this.age=age;

}

//重写Object中的toString方法

public String toString(){

return "Customer[name="+name+",age="+age+"]";

}

}

编译后运行输出:

3

false

1

100

java.lang.Object@15db9742

0

true

上述代码中,

1.创建集合,这里注意,因为Collection是一个接口,所以不能直接Collection c=new Collection(); 我们可以寻找它下面的一个实现类(参考上面的继承类的图)ArrayList,即Collection c=new ArrayList();

2.添加元素, c.add(1);这里用到了自动装箱的知识,忘记了的翻到前面看一看啊,c.add(new Object());相当于Object o=new Object(); c.add(o);也就是说Collection只能存储引用类型。之后我们自己给定一个其他类型Customer,并且重写Object中的toString()方法,然后在main()方法中添加元素c.add(cus);

3.获取元素的个数,使用c.size();

4. 将集合转换成Object类型的数组,使用的方法为toArray(); 之后使用for循环进行遍历;输出为

1

100

java.lang.Object@15db9742

0

5.清空集合,使用c.clear(); 然后再次获取元素个数之后会发现System.out.println(c.size());输出为0;

6.中间我们穿插了c.isEmpty(); 即判断集合是否为空;

接下来我们看看迭代器iterator()方法。看以下代码:

import java.util.*;

public class CollectionTest02{

public static void main(String[] args){

//创建集合对象

Collection c=new LinkedList();

//添加元素

c.add(100);

c.add(3.14);

c.add(false);

//迭代,遍历

//1.获取迭代器对象

Iterator it=c.iterator();

//2.开始调用方法,完成遍历,迭代

while(it.hasNext()){

Object element=it.next();

System.out.println(element);

}

/* //或者使用for循环

for(Iterator it=c.iterator();it.hasNext();){

Object o=it.next();

System.out.println(o);

} */

}

}

在上述代码中,

1.获取迭代器对象,已经创建了集合对象c,进行迭代时直接调用iterator()方法,也就是说,迭代器=c.iterator(); 这里c可能为ArrayList,HashSet,LinkedList各种集合对象,这样调用iterator()就实现了不同的迭代器,但是所有的迭代器都实现了Iterator接口,所以可以直接Iterator it=c.iterator();也就是说迭代器是直接面向接口编程,看不出具体的实现类,it是引用,保存了内存地址,指向堆中的迭代器对象。

2.开始调用方法,完成遍历,迭代

迭代器Iterator里面有三个方法,hasNext()判断迭代器里面是否有更多的元素,如果有,返回true,否则返回false; next()方法将迭代器向下移动一位,并且取出指向的元素,但要注意,调用next()方法之前,为了防止出现问题,必须先调用hasNext()方法判断是否还有元素。这里介绍了while和for循环两种遍历方式。

好了,今天的内容讲到这里,如果觉得有用,欢迎分享给更多人!

68bfdf3476ef0c6acd06a67b23f67ce1.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值