java 集合

本文深入探讨了Java集合的使用,包括Collection接口、Map接口、Iterator接口及其方法,详细解析了各种集合类的区别与应用场景,如ArrayList、LinkedList、HashMap、TreeMap等,并讨论了如何高效地操作集合,避免使用过时的Vector、Hashtable和Stack,以及如何返回接口而非具体类型以实现抽象编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.cnblogs.com/yoyozhou/archive/2012/01/10/2318453.html

java 集合

2012-01-10 19:17 by Rainbow, 118 visits, 收藏编辑

在java中,集合相关的内容多放在 java.util 包里面。java的集合主要有Collection接口和Map接口,同时还有Iterator 这个接口是实现foreach(for T in C)的遍历集合元素的操作。

image

  • Collection 接口类方法:

方法名描述
add(Object o)像集合中加入一个对象的引用
void clear()清空集合中所有对象的引用
contains(Object o)判读集合中是否存在特定对象的引用
Iterator iterator返回一个Iterator对象,使用foreach遍历
remove(Object o)从集合中删除特定对象的引用
size()返回集合的元素数目
Object[] toArray()返回一个数组
isEmpty()判读集合是否为空

以上是collection接口的共有方法,特定的子类还包含自己特有的有些方法。如 addAll(),first(),indexOf(),get()等等。

  • Iterator 接口的方法

方法描述
hasNext()判断是否已经到底
next()返回下一个元素
remove从集合中删除由上一个next()返回的对象

 

  • 集合类方面的异同:

image

① 如果涉及到堆栈,队列等操作,应该考虑用List。如果要进行大量的随机访问,应使用ArrayList;如果经常进行插入与删除操作,用使用LinkedList。

② HashMap设计用来快速访问;而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。

③ Set不接受重复元素。HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。

④ 对哈希表的操作,作为key的对象要正确重写equals和hashCode方法。

⑤ 尽量返回接口而非实际的类型(针对抽象编程),如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。

⑥ 程序中不应该使用过时的Vector\Hashtable\Stack。

  • 常见的问题

collection和collections有啥区别?

collection是java中关于集合的接口。而collections是java.util中的类,它包含了对集合操作的静态方法。

HasMap和Hastable的区别?

都属于Map接口的类,实现了将惟一键映射到特定的值上。

HasMap类没有分类和排序。它允许一个null键和null值。

Hastable类似于HasMap但是不允许null键和null值。因此比Hasmap慢。

其实关于集合的内容还非常多。好比,排序,性能等方面。以后需要写一篇专门的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值