Java基础学习——Java集合(二)引入集合

本文探讨了数组的优缺点,如快速访问、固定大小、低效的元素增删等,并指出这些缺点催生了集合的出现。集合分为多种类型,具有灵活的容量调整、类型安全和操作封装等特性。根据需求,选择集合的原则涉及是否键值对、元素唯一性、排序需求以及线程安全性。集合选取应考虑查询和增删操作的频率。

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

一、为什么要使用集合

数组的优缺点

优点

1)通过下标访问元素的效率很高,指定下标为n的元素的地址:首地址*元素类型字节数

2)数组可以保存若干个元素的值。

缺点

1)数组长度定义后不能改变

2)数组进行元素的删除和插入操作的时候,效率比较低。需要移动大量的元素,例如a[10000],删除a[0],后面9999个元素都要向前移动一位

3)数组类型定义后只能存放该类型的数据

4)数组通过内容查找元素的效率比较低的

5)数组实际元素的数量无法获取,比如定义一个数组为a[10000],往里面添加数据后,无法获取数组被使用到了a[500],还是a[1000]?

6)数组的元素是连续分配的,所以在heap内存中必须找到连续的内存空间才能容纳数组的所有数据。对内存要求高

7)数组没有提供任何的封装,所有对元素的操作,都必须要通过自定义的方法实现

8)数组是无序的,可重复的,要存放有序的,不可重复的数据不能满足要求
由于数组存在如上缺点,所以引入了集合

二、集合的分类

三、集合的特点

1.集合只能存放引用数据类型的数据,对于基本数据类型会直接自动装箱为包装类  int--->Integer

集合选取原则

1.判断集合是否是键值对形式: 若是则考虑选择Map,在考虑键是否需要排序,若不需要排序则选择HashMap,若需要排序则选择TreeMap。

2.集合若不是键值对形式,判断集合存储的元素是否需要唯一,若需要则选择Set,在此基础上若元素需要排序,则选择TreeSet,反之则选择HashSet;若判断集合存储的元素不需要唯一,则选择List,在此基础上若选择线程安全,则选择Vector,若不考虑线程安全但为了效率高则选择ArrayList或者LinkedList,在此基础上,若查询多就选择ArrayList,若增删多就选择LinkedList。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值