集合的特点和数据结构总结

简介: 集合的特点和数据结构总结

集合(自己补齐)

Collection(单列集合)


List(有序,可重复)

ArrayList

1. 底层数据结构是数组,查询快,增删慢

2. 线程不安全,效率高

Vector

1. 底层数据结构是数组,查询快,增删慢

2. 线程安全,效率低

LinkedList

1. 底层数据结构是链表,查询慢,增删快

2. 线程不安全,效率高

Set(无序,唯一)

HashSet

1. 底层数据结构是哈希表。

2. 哈希表依赖两个方法:hashCode()和equals()

3. 执行顺序:

首先判断hashCode()值是否相同

 是:继续执行equals(),看其返回值

    是true:说明元素重复,不添加

    是false:就直接添加到集合

 否:就直接添加到集合

4. 最终:

自动生成hashCode()和equals()即可

LinkedHashSet

1. 底层数据结构由链表和哈希表组成。

2. 由链表保证元素有序。

3. 由哈希表保证元素唯一。

TreeSet

1. 底层数据结构是红黑树。(是一种自平衡的二叉树)

2. 如何保证元素唯一性呢?

 答:根据比较的返回值是否是0来决定

3. 如何保证元素的排序呢?

 答:两种方式

 (1) 自然排序(元素具备比较性):让元素所属的类实现Comparable接口

 (2)比较器排序(集合具备比较性):让集合接收一个Comparator的实现类对象

Map(双列集合)

A:Map集合的数据结构仅仅针对键有效,与值无关。

B:存储的是键值对形式的元素,键唯一,值可重复。


HashMap

1. 底层数据结构是哈希表。线程不安全,效率高

2. 哈希表依赖两个方法:hashCode()和equals()

3. 执行顺序:

首先判断hashCode()值是否相同

 是:继续执行equals(),看其返回值

   是true:说明元素重复,不添加

   是false:就直接添加到集合

 否:就直接添加到集合

4. 最终:

自动生成hashCode()和equals()即可

LinkedHashMap

底层数据结构由链表和哈希表组成。

由链表保证元素有序。

由哈希表保证元素唯一。

Hashtable

1. 底层数据结构是哈希表。线程安全,效率低

2. 哈希表依赖两个方法:hashCode()和equals()

3. 执行顺序:

首先判断hashCode()值是否相同

 是:继续执行equals(),看其返回值

   是true:说明元素重复,不添加

   是false:就直接添加到集合

 否:就直接添加到集合

4. 最终:

自动生成hashCode()和equals()即可

TreeMap

1. 底层数据结构是红黑树。(是一种自平衡的二叉树)

2. 如何保证元素唯一性呢?

 答:根据比较的返回值是否是0来决定

3. 如何保证元素的排序呢?

 答:两种方式

   自然排序(元素具备比较性):让元素所属的类实现Comparable接口

   比较器排序(集合具备比较性):让集合接收一个Comparator的实现类对象

目录
相关文章
|
3月前
|
Java
【Java集合类面试二十六】、介绍一下ArrayList的数据结构?
ArrayList是基于可动态扩展的数组实现的,支持快速随机访问,但在插入和删除操作时可能需要数组复制而性能较差。
|
21天前
|
算法 安全 Java
【用Java学习数据结构系列】探索Java集合框架的无尽秘密pro
【用Java学习数据结构系列】探索Java集合框架的无尽秘密pro
18 1
|
2月前
|
存储 索引 Python
Python常用数据结构——集合
Python常用数据结构——集合
41 3
|
6月前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
2月前
|
存储 Java 程序员
【数据结构】初识集合&深入剖析顺序表(Arraylist)
Java集合框架主要由接口、实现类及迭代器组成,包括Collection和Map两大类。Collection涵盖List(有序、可重复)、Set(无序、不可重复),Map则由键值对构成。集合通过接口定义基本操作,具体实现由各类如ArrayList、HashSet等提供。迭代器允许遍历集合而不暴露其实现细节。List系列集合元素有序且可重复,Set系列元素无序且不可重复。集合遍历可通过迭代器、增强for循环、普通for循环及Lambda表达式实现,各有适用场景。其中ArrayList实现了动态数组功能,可根据需求自动调整大小。
35 11
|
6月前
|
缓存 算法 安全
Java集合框架:深入探究数据结构与算法的精华
Java集合框架:深入探究数据结构与算法的精华
|
5月前
|
存储 Python 容器
Python零基础入门-5 数据结构(集合和字典)
Python零基础入门-5 数据结构(集合和字典)
|
5月前
|
算法 Java
Java数据结构与算法:用于处理不相交集合的合并和查找问题
Java数据结构与算法:用于处理不相交集合的合并和查找问题
|
5月前
|
存储 算法
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
30 0
|
6月前
|
存储 程序员 索引
数据结构深度剖析:列表、元组、字典和集合
【4月更文挑战第8天】Python的四种基础数据结构——列表、元组、字典和集合,各自拥有独特的特性和应用场景。列表是可变序列,方便增删改元素;元组不可变,常用于保证数据不变性;字典是键值对容器,快速访问通过键;集合是无序不重复元素集,适合成员测试和去重。理解并灵活运用这些数据结构,能提升代码效率,有效处理和分析数据。
71 1