List map set

本文介绍了Java集合框架中的List、Map和Set,详细讲解了它们的特点、实现类以及HashMap和HashTable的区别。List是有序且允许重复的集合,Set是无序且不允许重复的集合,而Map则是存储键值对的无序集合,其键不可重复。HashMap相对于HashTable在效率上更高,但不保证线程安全。

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


List map set

  • ListSet是存储单列数据的集合,Map是储存key-value双列数据的集合

  • List 有序,允许重复

  • Map 无序,key不可重复 ,value允许重复

  • Set 无序,不允许重复,位置由hashcode决定,固定,用户不可控

Set 根据 equals()和 hashcode()判断 一个对象存储在set中必须重写 equals hashcode

 

List 的三个实现类

底层

线程

特点

ArrayList

数组

不安全

查询块 增删慢,效率高

LikedList

链表

不安全

查询慢 增删快

voctor

数组

安全

查询慢增删慢效率低

Map的三个实现类

底层

线程

特点

HashMap

基于hash表的map接口实现

不安全

高效,支持null值和null

HashTable

安全

低效,不支持null值和null

LinkedHashMap

HashMap的一个子类

不安全

保存了记录的插入顺序

SortMap 接口TreeMap,能够把它保存的记录根据键排序,默认是键值的升序排序

Set接口的两个实现类

底层

特点

HashSet

HashMap实现

不允许集合中有重复值,
使用时需要重写equals()hashcode()

LikedHashMap

LikedHashMap实现

继承HashSet,又基于LikedHashMap实现

区别

HashMap HashTable的区别

  • HashMap 线程不安全 HashMap是一个接口 是Map的子接口 将键映射到值 key不允许重复 允许null key null value 效率较HashTable高一些

  • HashTable 线程安全 不允许 null key null value sychronize 同步的, 多线程访问时不需要为它的方法实现同步,HashMap 被多线程访问时需要为它的方法实现同步

  • List 集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象 e.g:list.get(i) 获取元素

  • Map 每一个元素包含一个key和一个value,成对出现 key不可重复,value可重复

  • Set 集合中的对象不按特定方式排列,没有重复值,实现类能对集合中的对象按照特定的方式排序 e.g :TtreeSet 可以按照默认顺序,也可实现Java.util.Comparator<Type>接口自定义排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值