Collection总结

本文详细介绍了Java中的主要容器类型,如数组、List、Set、Map和Queue等的特点与用途。对比了不同容器在性能上的差异,例如ArrayList适用于大量随机访问场景,而LinkedList更适合频繁的中间位置插入或删除操作。

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

1、数组将数字与对象联系起来。它保存类型明确的对象,查询对象时,不需要对结果做类型转换。它可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,其容量就不能改变。
2、Collection保存单一的元素,而Map保存相关联的键值对。有了Java的泛型,你就可以指定容器中存放得对象类型,因此你就不会将错误类型的对象放置到容器中,并且在从容其中获取元素时,不必进行类型转换。各种Collection和各种Map都可以在你向其中添加更多的元素时,自动调整尺寸。[color=red]容器不能持有基本类型[/color],但是自动包装机制会仔细地执行基本类型到容器中所持有的包装器之间的双向转换。
3、像数组一样,List也建立数字索引与对象的关联,因此,数组和List都是排好序的容器。List能够自动扩充容量。
4、如果要进行大量的随机访问,就是用ArrayList;如果要经常从表[color=red]中间[/color]插入或删除元素,则应该使用LinkedList。
5、各种Queue以及栈的行为,由LinkedList提供支持。
6、Map是一种将对象(而非数字)与对象相关联的设计。HashMap设计用来快速访问;而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。
7、Set不接受重复元素。HashSet提供[color=red]最快[/color]的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。
8、新程序中不应使用过时的[color=red]Vector,Hashtable和Stack[/color]

Java容器的简图(不包含抽象类和遗留构件),这里只包含在一般情况下会碰到的接口和类
(图片暂时还没传)

你可以看到,其实只有四种容器:Map、List、Set和Queue,它们各有两个到三个实现版本(Queue的java.uti.concurrent实现没有包括在这张图中)
常用的容器有:HashMap、ArrayList、LinkedList、HashSet
接口:Iterator , Collection , Map , ListIterator , List , Set , Queue , Comparable , Comparator
普通的类: HashMap,TreeMap,ArrayList,LinkedList,PriorityQueue,LinkedHashMap,HashSet,
TreeSet,LinkedHashSet,Collections,Array
List,Set,Queue 实现 Collection
ArrayList,LinkedList 实现 List
HashSet,TreeSet,LinkedHashSet 实现 Set
LinkedHashSet 继承 HashSet
HashMap,TreeMap,LinkedHashMap 实现 Map
LinkedHashMap 继承 HashMap
LinkedList,PriorityQueue 实现 Queue

Collection可以生成Iterator对象
List 可以生成ListIterator对象
Map 可以生成 Collection对象(Map的keySet(),values(),entrySet()方法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值