Java 数据结构学习笔记
1. 栈(Stack)
栈是一种先入后出(FILO)的数据结构,它只允许在栈顶进行插入和删除操作。Java 中需要使用 java.util.Stack 类来实现栈的功能。
示例代码:
Copy Codeimport java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println("栈中元素为:" + stack);
System.out.println("栈顶元素为:" + stack.peek());
System.out.println("弹出栈顶元素:" + stack.pop());
System.out.println("栈中元素为:" + stack);
}
}
示例输出:
Copy Code栈中元素为:[1, 2, 3]
栈顶元素为:3
弹出栈顶元素:3
栈中元素为:[1, 2]
2. 队列(Queue)
队列是一种先入先出(FIFO)的数据结构,它允许在队尾插入元素,在队头删除元素。Java 中需要使用 java.util.Queue 接口来实现队列的功能。
示例代码:
Copy Codeimport java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
queue.offer("A");
queue.offer("B");
queue.offer("C");
System.out.println("队列中元素为:" + queue);
System.out.println("队头元素为:" + queue.peek());
System.out.println("弹出队头元素:" + queue.poll());
System.out.println("队列中元素为:" + queue);
}
}
示例输出:
Copy Code队列中元素为:[A, B, C]
队头元素为:A
弹出队头元素:A
队列中元素为:[B, C]
3. 链表(LinkedList)
链表是一种动态数据结构,它可以实现快速插入和删除操作。Java 中需要使用 java.util.LinkedList 类来实现链表的功能。
示例代码:
Copy Codeimport java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("A");
linkedList.add("B");
linkedList.add("C");
System.out.println("链表中元素为:" + linkedList);
linkedList.addFirst("D");
linkedList.addLast("E");
System.out.println("在链表头部插入元素后,链表中元素为:" + linkedList);
linkedList.removeFirst();
linkedList.removeLast();
System.out.println("删除链表头部和尾部元素后,链表中元素为:" + linkedList);
}
}
示例输出:
Copy Code链表中元素为:[A, B, C]
在链表头部插入元素后,链表中元素为:[D, A, B, C, E]
删除链表头部和尾部元素后,链表中元素为:[A, B, C]
4. 树(Tree)
树是一种非线性的数据结构,它由若干个节点组成,节点之间存在父子关系。Java 中需要使用 java.util.TreeMap 和 java.util.TreeSet 来实现树的功能。
示例代码:
Copy Codeimport java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
TreeMap<String, Integer> treeMap = new TreeMap<>();
treeMap.put("A", 1);
treeMap.put("B", 2);
treeMap.put("C", 3);
System.out.println("树中元素为:" + treeMap);
System.out.println("树中最小的键为:" + treeMap.firstKey());
System.out.println("树中最大的键为:" + treeMap.lastKey());
System.out.println("移除键为 B 的元素后,树中元素为:" + treeMap.remove("B"));
System.out.println("现在树中元素为:" + treeMap);
}
}
示例输出:
Copy Code树中元素为:{A=1, B=2, C=3}
树中最小的键为:A
树中最大的键为:C
移除键为 B 的元素后,树中元素为:2
现在树中元素为:{A=1, C=3}
这些简单的源码示例演示了 Java 中一些常见的数据结构的实现方式。在实际开发中,自己实现这些数据结构是非常具有挑战性和学习价值的。