java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java常见数据结构

java手动实现常见数据结构的示例代码

作者:hxung

本文介绍了Java中常用数据结构的特点和Java实现,包括数组、动态数组、链表、栈、队列、哈希表、树、堆、图、集合、双向队列以及自定义链表,帮助开发者选择合适的数据结构以提升代码效率,感兴趣的朋友一起看看吧

在 Java 中,常用的数据结构可以通过 集合框架(Collections Framework) 实现,也可以手动实现。以下是常见数据结构及其特点,以及对应的 Java 实现示例:

1. 数组(Array)

Java 实现

int[] array = new int[5]; // 静态数组
array[0] = 10;

2. 动态数组

(ArrayList)

Java 实现

import java.util.ArrayList;
ArrayList<Integer> list = new ArrayList<>();
list.add(10);        // 添加元素
int value = list.get(0); // 访问元素

3. 链表(LinkedList)

import java.util.LinkedList;
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(10);          // 添加元素
linkedList.addFirst(5);      // 头部插入
int first = linkedList.getFirst(); // 访问头部元素

4. 栈(Stack)

import java.util.ArrayDeque;
ArrayDeque<Integer> stack = new ArrayDeque<>();
stack.push(10); // 压栈
int top = stack.pop(); // 弹栈

5. 队列(Queue)

import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
queue.offer(10); // 入队
int head = queue.poll(); // 出队

6. 哈希表(HashMap)

import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("Alice", 25); // 添加键值对
int age = map.get("Alice"); // 查找

7. 树(TreeSet/TreeMap)

import java.util.TreeSet;
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(10);
treeSet.add(5); // 自动排序为 [5, 10]

8. 堆(PriorityQueue)

import java.util.PriorityQueue;
PriorityQueue<Integer> heap = new PriorityQueue<>();
heap.offer(10);
heap.offer(5); // 堆顶为 5
int min = heap.poll(); // 弹出最小值 5

9. 图(Graph)

import java.util.*;
class Graph {
    private Map<Integer, List<Integer>> adjacencyList = new HashMap<>();
    public void addEdge(int src, int dest) {
        adjacencyList.computeIfAbsent(src, k -> new ArrayList<>()).add(dest);
        adjacencyList.computeIfAbsent(dest, k -> new ArrayList<>()).add(src); // 无向图
    }
}

10. 集合(Set)

import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Apple");
set.add("Apple"); // 重复元素会被忽略

11. 双向队列(Deque)

import java.util.ArrayDeque;
ArrayDeque<Integer> deque = new ArrayDeque<>();
deque.addFirst(10);
deque.addLast(20);
int first = deque.removeFirst();

12. 自定义链表(手动实现)

class Node {
    int data;
    Node next;
    Node(int data) {
        this.data = data;
        this.next = null;
    }
}
class LinkedList {
    Node head;
    public void add(int data) {
        Node newNode = new Node(data);
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }
}

总结

Java 提供了丰富的内置数据结构(通过 java.util 包),开发者可以根据需求选择合适的结构:

掌握这些数据结构的特点和使用场景,可以显著提升代码效率和可维护性!

到此这篇关于java手动实现常见数据结构的文章就介绍到这了,更多相关java常见数据结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文