【新手向】从零开始学习Java(Day22)Java 数据结构

每天二十分钟,成就Java大神,点点关注不迷路!

今天是第二十二天,给坚持到这里的小伙伴点个赞!

追赶太阳的人,自己也会身披光芒,共勉!


目录

数组(Arrays)

列表(Lists)

ArrayList

LinkedList

集合(Sets)

HashSet

TreeSet

映射(Maps)

HashMap

TreeMap

栈(Stack)

队列(Queue)

堆(Heap)

树(Trees)

下节预告


Java 提供了丰富的数据结构来处理和组织数据。

Java 的 java.util 包中提供了许多这些数据结构的实现,可以根据需要选择合适的类。

以下是一些常见的 Java 数据结构,供读者熟悉,后面几天会展开详细说明:

数组(Arrays)

数组(Arrays)是一种基本的数据结构,可以存储固定大小相同类型的元素。

int[] array = new int[5];

优点: 随机访问元素效率高。

缺点: 大小固定,插入和删除元素相对较慢


列表(Lists)

Java 提供了多种列表实现,如 ArrayList(动态数组) 和 LinkedList(双向链表)。

ArrayList

List arrayList = new ArrayList<>();

特点: 动态数组,可变大小

优点: 高效的随机访问和快速尾部插入

缺点: 中间插入和删除相对较慢。

LinkedList

List linkedList = new LinkedList<>();

特点: 双向链表,元素之间通过指针连接

优点: 插入和删除元素高效迭代器性能好

缺点: 随机访问相对较慢


集合(Sets)

集合(Sets)用于存储不重复的元素,常见的实现有 HashSet(无序集合) 和 TreeSet(有序集合)。

HashSet

Set hashSet = new HashSet<>();

特点: 无序集合基于HashMap实现。

优点: 高效的查找和插入操作。

缺点: 不保证顺序

TreeSet

Set treeSet = new TreeSet<>();

特点:TreeSet 是有序集合,底层基于红黑树实现,不允许重复元素。

优点: 提供自动排序功能,适用于需要按顺序存储元素的场景。

缺点: 性能相对较差不允许插入 null 元素。


映射(Maps)

映射(Maps)用于存储键值对,常见的实现有 HashMap(哈希表) 和 TreeMap(红黑树)。

HashMap

Map hashMap = new HashMap<>();

特点: 基于哈希表实现的键值对存储结构。

优点: 高效的查找、插入和删除操作。

缺点: 无序,不保证顺序。

TreeMap

Map treeMap = new TreeMap<>();

特点: 基于红黑树实现的有序键值对存储结构。

优点: 有序,支持按照键的顺序遍历

缺点: 插入和删除相对较慢


栈(Stack)

栈(Stack)是一种线性数据结构,它按照后进先出(Last In, First Out,LIFO)的原则管理元素。在栈中,新元素被添加到栈的顶部,而只能从栈的顶部移除元素。这就意味着最后添加的元素是第一个被移除的。

Stack stack = new Stack<>();

队列(Queue)

队列(Queue)遵循先进先出(FIFO)原则,常见的实现有 LinkedList(基于链表) 和 PriorityQueue(基于堆)。

Queue queue = new LinkedList<>();
Queue pq = new PriorityQueue<>();

堆(Heap)

堆(Heap)优先队列的基础,可以实现最大堆和最小堆

PriorityQueue minHeap = new PriorityQueue<>();
PriorityQueue maxHeap = new PriorityQueue<>(Collections.reverseOrder());

树(Trees)

Java 提供了 TreeNode 类型,可以用于构建二叉树等数据结构。

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) { val = x; }
}

下节预告

上面是Java 中较为常见的数据结构,接下来几天,笔者会带大家详细剖析各个数据结构,以及更多进阶版数据结构,有疑惑可私信或评论区提出,and不妨动动发财的手点个赞吧,明天见!

你可能感兴趣的:(从零开始学习Java,学习,java,开发语言,java-ee,数据结构,vscode,后端)