21/2/28 集合

集合

数组的局限性
1.创建数组必须指定长度,长度一旦指定就不能改变;
2.一个数组中只能存放一种数据类型的数据。

集合就是特殊的数组
1.集合创建无需指定长度,长度可以动态改变;
一个集合中可以存储多种数据类型的数据。

所有集合类都实现了java.util.Collection接口。
Collection接口有两个主要的子接口:List和Set。

在这里插入图片描述
List集合和Set集合的区别:
List和Set都是Collection的子接口,都表示集合;
List接口下的集合元素有序且可以重复;
Set接口下的集合元素无序且不可重复。

HashSet集合
在这里插入图片描述
在这里插入图片描述
ArrayList集合
在这里插入图片描述
ArrayList和LinkedList的区别
ArrayList和LinkedList都是List接口下的实现类,都是元素有序可重复的集合。
ArrayList和LinkedList不同点在于其元素的存储方式:
ArrayList集合中元素是基于数组结构的存储,元素查询和修改效率相对较高;
LinkedList集合中的元素是基于链接结构的存储,元素移除和插入效率相对较高。

ArrayList和Vector的区别
ArrayList和Vector都List接口下基于数组存储的元素有序可重复的集合。
ArrayList没实现线程同步,是线程非安全的,但效率比Vector高。
Vector实现了线程同步,是线程安全的,可直接用于多线程编程,效率较ArrayList低。

HashSet和TreeSet的区别
HashSet和TreeSet都是Set接口下元素无序且不可重复的集合。
HashSet 使用哈希表(散列)对元素进行排序;
TreeSet 使用元素的自然顺序对元素进行排序。

使用Comparator接口可以自定义集合中元素的排序规则。

映射集合

映射集合:可以存储多个键值对元素的集合。
映射集合中的key不能重复。

常见的映射集合类
所有实现了Map接口的类都是一个映射集合类。
在这里插入图片描述
HashMap类

在这里插入图片描述
Hashtable类

Hashtable的使用和HashMap保持一致,新增了keys()和elements()方法
在这里插入图片描述
HashMap和Hashtable的区别:
HashMap和Hashtable都是Map接口的实现类,都表示映射集合。
·HashMap允许使用null键和null值,Hashtable中不允许有null键和null值;
·HashMap没有实现线程同步,是线程非安全的;Hashtable实现了线程同步,是线程安全的,可直接用于多线程编程;
·在Hashtable新增了keys()和elements()方法,可以通过枚举遍历映射集合中的key和value。

Properties类
1.属性映射集合,其key和value都是String类型
2.对于Properties集合,使用setProperty及getProperty方法添加键值对/根据key取value
3.Properties提供了load和store方法,用于读取属性文件数据/将数据写入数据文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值