Java常用数据结构入门

前言

数据结构是程序设计中的基础,掌握常用数据结构能帮助你更高效地解决问题。本文面向Java初学者,介绍Java中常用的数据结构及其基本使用方法。


1. 数组 (Array)

数组是最基础的数据结构,可以存储固定大小的同类型元素。

定义与使用:

int[] arr = new int[5]; // 创建长度为5的整型数组
arr[0] = 10; // 赋值
System.out.println(arr[0]); // 输出第一个元素

特点:

  • 长度固定,不能动态扩容
  • 访问速度快,适合存储和遍历

2. ArrayList

ArrayList是Java集合框架中最常用的动态数组实现,可以动态扩容,适合存储不固定长度的数据。

定义与使用:

import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(0)); // 输出 "Java"

常用方法:

  • add() 添加元素
  • get() 获取元素
  • remove() 移除元素
  • size() 获取长度

3. LinkedList

LinkedList是链表结构,插入和删除操作效率高,适合频繁增删元素的场景。

定义与使用:

import java.util.LinkedList;
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.remove(0); // 移除第一个元素

特点:

  • 插入/删除快
  • 随机访问慢

4. HashMap

HashMap是常用的键值对映射结构,用于存储映射关系。

定义与使用:

import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
System.out.println(map.get("Java")); // 输出 1

常用方法:

  • put() 添加键值对
  • get() 获取值
  • remove() 移除键值对
  • containsKey() 判断是否包含某个键

5. HashSet

HashSet用于存储不重复的元素集合。

定义与使用:

import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java"); // 不会重复添加
System.out.println(set.size()); // 输出 2

特点:

  • 元素不重复
  • 无序存储

6. 栈 (Stack)

是一种后进先出(LIFO)的数据结构,可以用Stack类或Deque接口实现。

定义与使用:

import java.util.Stack;
Stack<Integer> stack = new Stack<>();
stack.push(1); // 压栈
stack.push(2);
System.out.println(stack.pop()); // 出栈,输出2

7. 队列 (Queue)

队列是一种先进先出(FIFO)结构,常用LinkedListArrayDeque实现。

定义与使用:

import java.util.LinkedList;
import java.util.Queue;
Queue<String> queue = new LinkedList<>();
queue.offer("Java");
queue.offer("Python");
System.out.println(queue.poll()); // 输出并移除 "Java"

总结

Java集合框架为我们提供了丰富的数据结构选择。作为初学者,建议重点掌握上述几种数据结构的基本用法和特点。多加练习,结合实际场景选择合适的数据结构,会让你的编程能力大幅提升。

推荐学习路径:

  1. 了解每种数据结构的特点和适用场景
  2. 编写代码练习基本操作
  3. 阅读Java官方文档和相关书籍

参考资料:

  • Java官方文档 - Collections Framework
  • 《数据结构与算法Java版》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94294.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94294.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94294.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android GPU测试

一、Basemark GPU 可选择进行vulkan和opengl测试&#xff1a; 二、GFXBench 进行各种offscreen测试&#xff08;包括曼哈顿离屏&#xff09; 这是由GFXBench图形性能测试套件提供的一个著名3D图形渲染场景。 它模拟了一个复杂的未来都市环境&#xff08;类似曼哈顿&#xff…

2025年6月最新SCI-灰熊脂肪增长优化算法Grizzly Bear Fat Increase-附Matlab免费代码

引言 本期介绍一种受自然启发的创新算法——灰熊脂肪增长优化算法Grizzly Bear Fat Increase optimizer&#xff0c;GBFIO。GBFIO算法模仿灰熊为准备过冬而积累身体脂肪的自然行为&#xff0c;借鉴了它们的狩猎、捕鱼、吃草、蜂蜜等策略。于2025年6月发表在JCR 1区&#xff0c…

Pytorch实现一个简单的贝叶斯卷积神经网络模型

贝叶斯深度模型的主要特点和实现说明&#xff1a;模型结构&#xff1a;结合了常规卷积层&#xff08;用于特征提取&#xff09;和贝叶斯线性层&#xff08;用于分类&#xff09;贝叶斯层将权重视为随机变量&#xff0c;而非传统神经网络中的确定值使用变分推断来近似权重的后验…

Dubbo 3.x源码(32)—Dubbo Provider处理服务调用请求源码

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo Provider处理服务调用请求源码 上文我们学习了&#xff0c;Dubbo消息的编码解的源码。现在我们来学习一下Dubbo Provider处理服务调用请求源码。 当前consumer发起了rpc请求&#xff0c;经过请求编码之后到达provider端&#xff0c;…

每日一leetcode:移动零

目录 解题过程: 描述: 分析条件: 解题思路: 通过这道题可以学到什么: 解题过程: 描述: 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操…

6-Django项目实战-[dtoken]-用户登录模块

1.创建应用 python manage.py startapp dtoken 2.注册应用 settings.py中注册 3.匹配路由4.编写登录功能视图函数 import hashlib import json import timeimport jwt from django.conf import settings from django.http import JsonResponse from user.models import UserPro…

Axure日期日历高保真动态交互原型

在数字化产品设计中&#xff0c;日期日历组件作为高频交互元素&#xff0c;其功能完整性与用户体验直接影响着用户对产品的信任度。本次带来的日期日历高保真动态交互原型&#xff0c;依照Element UI、View UI等主流前端框架为参考&#xff0c;通过动态面板、中继器、函数、交互…

【YOLOv4】

YOLOv4 论文地址&#xff1a;&#xff1a;【https://arxiv.org/pdf/2004.10934】 YOLOv4 论文中文翻译地址&#xff1a;【深度学习论文阅读目标检测篇&#xff08;七&#xff09;中文版&#xff1a;YOLOv4《Optimal Speed and Accuracy of Object Detection》-CSDN博客】 yol…

【秋招笔试】2025.08.03虾皮秋招笔试-第一题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 01. 蛋糕切分的最大收益 问题描述 K小姐经营着一家甜品店,今天她有一块长度为 n n n 厘米的长条蛋糕需要切分。根据店里的规定,她必须将蛋糕切成至少 2 2

2.0 vue工程项目的创建

前提准备.需要电脑上已经安装了nodejs 参考 7.nodejs和npm简单使用_npmjs官网-CSDN博客 创建vue2工程 全局安装 Vue CLI 在终端中运行以下命令来全局安装 Vue CLI&#xff1a; npm install -g vue/cli npm install -g 表示全局安装。vue/cli 是 Vue CLI 的包名。 安装完成后…

视觉图像处理中级篇 [2]—— 外观检查 / 伤痕模式的原理与优化设置方法

外观缺陷检测是工业生产中的关键环节&#xff0c;而伤痕模式作为图像处理的核心算法&#xff0c;能精准识别工件表面的划痕、污迹等缺陷。掌握其原理和优化方法&#xff0c;对提升检测效率至关重要。一、利用伤痕模式进行外观检查虽然总称为外观检查&#xff0c;但根据检查对象…

ethtool,lspci,iperf工具常用命令总结

ethtool、lspci 和 iperf 是 Linux 系统中进行网络硬件查看、配置和性能测试的核心命令行工具。下面是它们的常用命令分析和总结&#xff1a; 核心作用总结&#xff1a; lspci: 侦察兵 - 列出系统所有 PCI/PCIe 总线上的硬件设备信息&#xff0c;主要用于识别网卡型号、制造商、…

DAY10DAY11-新世纪DL(DeepLearning/深度学习)战士:序

本文参考视频[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili 参考文章0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授-CSDN博客 1深度学习概论 1.举例介绍 lg房价预测&#xff1a;房价与面积之间的坐标关系如图所示&#xff0c;由线性回归…

flutter release调试插件

chucker_flutter &#xff08;只有网络请求的信息&#xff0c;亲测可以用&#xff09; flutter&#xff1a;3.24.3 使用版本 chucker_flutter: 1.8.2 chucker_flutter | Flutter package void main() async {// 可以控制显示ChuckerFlutter.showNotification false;ChuckerF…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的私域流量拉新策略研究

摘要&#xff1a;私域流量运营已成为企业数字化转型的核心战略&#xff0c;其本质是通过精细化用户运营实现流量价值最大化。本文以“定位、拉新、养熟、成交、裂变、留存”全链路为框架&#xff0c;聚焦开源链动21模式、AI智能名片与S2B2C商城小程序的协同创新&#xff0c;揭示…

华为云云服务高级顾问叶正晖:华为对多模态大模型的思考与实践

嘉宾介绍&#xff1a;叶正晖&#xff0c;华为云云服务高级顾问&#xff0c;全球化企业信息化专家&#xff0c;从业年限超过23年&#xff0c;在华为任职超过21年&#xff0c;涉及运营商、企业、消费者、云服务、安全与隐私等领域&#xff0c;精通云服务、安全合规、隐私保护等领…

【机器学习(二)】KNN算法与模型评估调优

目录 一、写在前面的话 二、KNN&#xff08;K-Nearest Neighbor&#xff09; 2.1 KNN算法介绍 2.1.1 概念介绍 2.1.2 算法特点 2.1.3 API 讲解 2.2 样本距离计算 2.2.1 距离的类型 &#xff08;1&#xff09;欧几里得距离&#xff08;Euclidean Distance&#xff09; …

《Uniapp-Vue 3-TS 实战开发》实现自定义头部导航栏

本文介绍了如何将Vue2组件迁移至Vue3的组合式API。主要内容包括:1) 使用<script setup lang="ts">语法;2) 通过接口定义props类型约束;3) 用defineProps替代props选项;4) 将data变量转为ref响应式变量;5) 使用computed替代计算属性;6) 将created生命周期…

GitCode疑难问题诊疗

问题诊断与解决框架通用问题排查流程&#xff08;适用于大多数场景&#xff09; 版本兼容性验证方法 网络连接与权限检查清单常见错误分类与解决方案仓库克隆失败场景分析 HTTP/SSH协议错误代码解读 403/404错误深层原因排查高级疑难问题处理分支合并冲突的深度解决 .gitignore…

告别物业思维:科技正重构产业园区的价值坐标系

文 | 方寸控股引言&#xff1a;当产业园区的竞争升维为“科技军备竞赛”&#xff0c;土地红利消退&#xff0c;政策优势趋同&#xff0c;传统园区运营陷入增长困局。当招商团队还在用Excel统计企业需求&#xff0c;当能耗管理依赖保安夜间巡检&#xff0c;当企业服务停留在“修…