当前位置: 首页 > news >正文

Java数据结构的基础用法

数组

数组是一种固定大小的数据结构,用来存储相同类型的元素。

// 创建数组
int[] arr = new int[5];
// 赋值
arr[0] = 1;
// 获取元素
int element = arr[0];
// 获取数组长度
int length = arr.length;

集合框架

1. List

List 是一个有序的集合,允许重复元素。常见的实现类有 ArrayList 和 LinkedList

import java.util.ArrayList;
import java.util.List;

// 创建 List
List<String> list = new ArrayList<>();
// 添加元素
list.add("apple");
// 在指定位置添加元素
list.add(1, "banana");
// 获取元素
String fruit = list.get(0);
// 获取元素位置
int index = list.indexOf("apple");
// 删除元素
list.remove(0);
// 获取列表大小
int size = list.size();
2. Set

Set 是一个不允许重复元素的集合。常见的实现类有 HashSetTreeSet

import java.util.HashSet;
import java.util.Set;

// 创建 Set
Set<String> set = new HashSet<>();
// 添加元素
set.add("apple");
// 判断元素是否存在
boolean contains = set.contains("apple");
// 删除元素
set.remove("apple");
// 获取集合大小
int size = set.size();
3. Map

Map 存储键值对,键是唯一的。常见的实现类有 HashMapTreeMap

import java.util.HashMap;
import java.util.Map;

// 创建 Map
Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 1);
// 获取值
Integer value = map.get("apple");
// 判断键是否存在
boolean containsKey = map.containsKey("apple");
// 删除键值对
map.remove("apple");
// 获取键值对数量
int size = map.size();

栈和队列

1. 栈(Stack

栈是一种后进先出(LIFO)的数据结构。

import java.util.Stack;

// 创建栈
Stack<Integer> stack = new Stack<>();
// 入栈
stack.push(1);
// 出栈
int top = stack.pop();
// 查看栈顶元素
int peek = stack.peek();
// 判断栈是否为空
boolean empty = stack.isEmpty();
2. 队列(Queue

队列是一种先进先出(FIFO)的数据结构。常见的实现类有 LinkedList

import java.util.LinkedList;
import java.util.Queue;

// 创建队列
Queue<Integer> queue = new LinkedList<>();
// 入队
queue.offer(1);
// 出队
int front = queue.poll();
// 查看队首元素
int peek = queue.peek();
// 判断队列是否为空
boolean empty = queue.isEmpty();

优先级队列(PriorityQueue

PriorityQueue 是一个基于优先级堆的无界优先级队列。

import java.util.PriorityQueue;

// 创建优先级队列
PriorityQueue<Integer> pq = new PriorityQueue<>();
// 添加元素
pq.offer(3);
// 获取并移除队首元素
int min = pq.poll();
// 查看队首元素
int peek = pq.peek();
// 判断队列是否为空
boolean empty = pq.isEmpty();

这些就是 Java 中常见数据结构的常用方法,掌握它们能让你在实际编程中更高效地使用不同的数据结构。

http://www.dtcms.com/a/115666.html

相关文章:

  • 嵌入式AI开源生态指南:从框架到应用的全面解析
  • JavaScript学习教程,从入门到精通,JavaScript 基础语法全面指南(5)
  • 2025.4.6总结
  • 低空经济基础设施建设方向与展望
  • 深入详解流形学习中的几何解释
  • 机器学习/深度学习
  • HTML语言的数据可视化
  • deepseek为采用JAVA重构模型运营平台vLLM和SGLang指定的计划
  • 【学习笔记】Ruckig: 高效实时运动规划库
  • 如何获取oracle cloud永久免费的vps(4C/24G)?
  • 机器学习的一百个概念(10)假阳性率
  • Spring 中的 bean 生命周期
  • 数据对象:DTO、DO、PO和 BO的区别和关系
  • 用 C++ 写汉诺塔程序
  • 从零开始的编程-java篇1.6.3
  • 医院大数据处理的主要痛点分析
  • 低代码开发平台:飞帆制作网页并集成到自己的网页中
  • 1110+款专业网站应用程序UI界面设计矢量图标figma格式素材 Icon System | 1,100+ Icons Easily Customize
  • FreeRTOS移植笔记:让操作系统在你的硬件上跑起来
  • visual_studio_2022集成SFML
  • IntelliJ IDEA Maven 工具栏消失怎么办?
  • ctf-show-杂项签到题
  • 输入框输入数字且保持精度
  • 【工具变量】全国各省及地级市绿色金融指数数据集(2000-2023年)
  • OpenGL学习笔记(模型材质、光照贴图)
  • 树莓派llama.cpp部署DeepSeek-R1-Distill-Qwen-1.5B
  • Gerapy二次开发:用户管理专栏页面样式与功能设计
  • OpenStack Yoga版安装笔记(十七)安全组笔记
  • 每日c/c++题 备战蓝桥杯(求解三个数的最大公约数与最小公倍数)
  • CANoe CAPL——Ethernet CAPL函数