Java中的集合

集合

Java中的集合共有三个大类

集合的体系结构

在这里插入图片描述

1. List

有序不唯一。

1.1 ArrayList

底层结构是数组、查询块,更新慢。线程不安全,效率高。

1.2 Vector

底层数据结构是数据结构,查询块,更新慢,线程安全,效率低。

1.3 LinkedList

底层数据结构是链表,查询慢,增删快,线程不安全。

2. Set

有序唯一。

2.1 HashSet

底层数据结构是Hash表,依赖于hashCode()和equals()方法来保证元素唯一性。

2.2 LinkedHashSet

底层数据结构是链表和哈希表;链表保证元素有序,哈希表保证元素唯一。

2.3 TreeSet

底层数据结构是红黑树;自然排序和比较器排序保证数据的有序性;根据比较返回值是否为0来保证元素的唯一性。

3. Map

在这里插入图片描述

3.1 HashMap

无序、允许null,但是只允许有一个,效率高,不同步。父类是AbstractMap

3.2 HashTable

无序,线程同步,效率低,不允许null,父类是Dictionary

3.3 TreeMap

有序,

3.4 TreeSet、LinkedHashSet、HashSet

都是在Java中实现的set数据结构。
TreeSet主要用于排序;
LikedHashSet主要用于保证FIFO有序的集合;
HashSet是通用的存储数据集合。

相同点:
都实现Set接口、线程不安全。

速度:
HashSet插入数据最快,其次LinkHashSet,最慢的是TreeSet因为内部实现排序

4. 总述

有序唯一选择Set、有序不唯一选择List
set排序使用TreeSet或者LinkedHashSet;最常使用的是HashSet。
list中如果需要线程安全就选择Vector;查询多使用ArrayList;修改多使用LinkedList

Map:
如果要保证线程安全就选择HashTable,不考虑线程安全使用HashMap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值