Java集合


作者:云都小生


总述



之前我们存储数据的方法,都是选择用数组。但是数组有一个硬伤,它只能存储固定数据类型的数据。

后来我们学习了面向对象,我们能够自己构建出新的数据类型,这样方便多了。例如Student类,我们可以封装名字、年龄、班级等等,我们需要多个Student就直接弄个对象数组。

但是如果我们想要将多个不同的对象放到一起,那怎么办?

今天,我们来学习Java给我们提供的三个更便利的东西,分别是List、Set、Map。

你可以把它们理解成三个不同的箱子,能装东西,但是它们的规则不一样。


Collection接口



这里写图片描述

通过图1我们可以看到,Set和List都继承了Collection这个接口。这个接口是最基本的集合接口,它提供了一个iterator()的方法,这个方法可以用来迭代访问Collection中的每一个元素。

Iterator it = collention.iterator();
while(it.hsaNext())
{
    Object obj = it.next();
}

在第第一行中,我们获取了collention集合对象的一个迭代子。然后我们通过while对所有元素进行遍历。

所有的集合类都位于java.util包下,集合中只能保存对象。


List接口



List接口是Collection接口的子接口,List是有序的集合,能够精确的控制每个元素插入的位置。List跟数组有点类似,可以通过下标来访问List中的元素。List中允许重复元素的存在。

记住两点:

1. List是有序的集合;

2. List允许重复元素的存在。

这两个是List的特点。


Set接口



Set接口也继承了Collection接口,这个集合跟List是相反的,该集合中的元素不可重复,并且,该集合是无序即可。

记住两点

1. Set是无序的集合;

2. Set是不允许重复元素的存在


Map接口



Map接口并不从Collection接口继承,这个集合主要保存的是有映射关系的数据,也就是我们平时所说的键-值。访问时只能根据每项元素的key来访问其value。


常用集合类ArraysList



ArraysList实现了List接口,这个集合类实现了可变大小的数组。


常用集合类Stack



这个类继承自Vector,它实现了一个后进先出的堆栈。提供了5个方法,很类似堆栈的使用。push()用来将元素压入栈中,pop()用来从栈中获取元素。peek()方法得到栈顶的元素,empty()用于检测堆栈是否为空。search()方法用于检测一个元素在堆栈中的位置。


常用集合类HashSet



这个类实现了Set接口,不保证集合的迭代顺序。


常用集合类Hashtable



Hashtable继承Map接口,实现了一个键值对应的哈希表。提供的方法有:

put(key,value)用于添加键值对;
get(key)用于取出数据。


适用范围



List、Set和Map都有不同的特点,那么什么情况下应该使用List,什么情况下可以使用Set,又在什么情况下使用Map呢?

如果涉及到堆栈、队列等操作的,直接考虑用List。

如果要考虑效率,就要使用HashSet、HashMap,它们的效率更高。

下节文章开始,我们将开始学如何使用这些常用的集合类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值