本文最后更新于408 天前,其中的信息可能已经过时,如有错误请发送邮件到3368129372@qq.com
栈
- 实现
Deque<E> stack = new ArrayDeque<>(); // 压栈操作 stack.push(1); stack.push(2); stack.push(3); // 出栈操作 int poppedElement = stack.pop(); System.out.println("出栈元素:" + poppedElement); // 获取栈顶元素但不出栈 int peekedElement = stack.peek(); System.out.println("栈顶元素:" + peekedElement); // 检查栈是否为空 boolean isEmpty = stack.isEmpty(); System.out.println("栈是否为空:" + isEmpty); // 输出:栈是否为空:false // 获取栈的大小 int size = stack.size(); System.out.println("栈的大小:" + size);
队列
- 实现
Queue<E> q = new LinkedList<>(); Deque<Integer> queue = new LinkedList<>(); // 入队操作 queue.offer(1); queue.offer(2); queue.offer(3); // 出队操作 int dequeuedElement = queue.poll(); System.out.println("出队元素:" + dequeuedElement); // 获取队头元素但不出队 int peekedElement = queue.peek(); (queue.peekFirst()与queue.peekLast()) System.out.println("队头元素:" + peekedElement); // 检查队列是否为空 boolean isEmpty = queue.isEmpty(); System.out.println("队列是否为空:" + isEmpty); // 获取队列的大小 int size = queue.size(); System.out.println("队列的大小:" + size);
堆
- 优先队列
//里面能自己写Comparator,取出来的是堆顶,最大堆取得是最大值 PriorityQueue<Integer> minHeap = new PriorityQueue<>(); // 插入元素 - offer() minHeap.offer(5); // O(logN) minHeap.offer(2); // O(logN) minHeap.offer(8); // O(logN) minHeap.offer(1); // O(logN) minHeap.offer(4); // O(logN) // 检索元素 - peek() 和 poll() int min = minHeap.peek(); // O(1) int removedMin = minHeap.poll(); // O(logN) // 获取队列大小 - size() int size = minHeap.size(); // O(1) // 判空 - isEmpty() boolean isEmpty = minHeap.isEmpty(); // O(1) // 转化为数组 - toArray() Integer[] array = minHeap.toArray(new Integer[0]); // O(N) // 清空队列 - clear() minHeap.clear(); // O(N) // 遍历队列(不改变队列状态) - 使用迭代器或循环遍历 for (Integer num : minHeap) { // 遍历操作 } // 复杂度注释: // - 插入操作:O(logN) // - 检索操作 (peek()):O(1) // - 检索并删除操作 (poll()):O(logN) // - 获取队列大小 (size()):O(1) // - 判空 (isEmpty()):O(1) // - 转化为数组 (toArray()):O(N) // - 清空队列 (clear()):O(N) // - 遍历队列 (不改变队列状态):O(N) } }
map
- HashMap
// 创建一个HashMap对象 Map<String, Integer> hashMap = new HashMap<>(); // 添加键值对 hashMap.put("apple", 1); hashMap.put("banana", 2); hashMap.put("cherry", 3); // 获取键对应的值 Integer appleValue = hashMap.get("apple"); // 获取,获取不到则用默认值 Integer pearValue = hashMap.getOrDefault("pear",4); // 检查键是否存在 boolean containsKey = hashMap.containsKey("banana"); // 删除键值对 hashMap.remove("cherry"); // 获取HashMap的大小 int size = hashMap.size(); // 清空HashMap hashMap.clear(); // 检查HashMap是否为空 boolean isEmpty = hashMap.isEmpty();