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

【数据结构】第1天之Java中的数据结构

前言

众所周知,程序=数据结构+算法,可见数据结构的重要性。

在Java中,数据结构通常指的是Java集合框架中的类和接口。

Java集合框架提供了一套标准的数据结构,例如列表、集合、映射表等,以及相应的实现类。

今天要分享的文章是:Java中的数据结构。

数据结构

定义

  • 百度百科解释
    在这里插入图片描述
  • 维基百科解释
    在这里插入图片描述

研究对象

  • 数据逻辑结构
    在这里插入图片描述

    • 集合
    • 线性结构
    • 树形结构
    • 图形结构
  • 数据存储结构

分类

  • 线性结构
  • 非线性结构

常见的数据结构

在这里插入图片描述

常用算法

数据操作是指对数据结构中的数据元素进行运算或处理。

数据操作定义在数据的逻辑结构上,每种逻辑结构都需要一组对其数据元素进行处理以实现特定功能的操作,如插入、删除、更新等。

数据操作的实现依赖于数据的存储结构 。

一般有以下几种常用运算:

  • 创建操作
  • 插入操作
  • 删除操作
  • 查找操作
  • 修改操作
  • 遍历操作

Java中的数据结构

在这里插入图片描述

  • 数组列表ArrayList
    @Testpublic void testArrayList() {ArrayList<String> list = new ArrayList<>();list.add("Element 1");list.add("Element 2");list.add("Element 3");}
  • 链表LinkedList
    @Testpublic void testLinkedList() {LinkedList<Integer> linkedList = new LinkedList<>();linkedList.add(1);linkedList.add(2);linkedList.add(3);}
  • 哈希集合HashSet
    @Testpublic void testHashSet() {HashSet<Character> set = new HashSet<>();set.add('A');set.add('B');set.add('C');}
  • 哈希映射表HashMap
    @Testpublic void testHashMap() {HashMap<Integer, String> map = new HashMap<>();map.put(1, "One");map.put(2, "Two");map.put(3, "Three");}
  • 堆栈Stack
    @Testpublic void testStack() {Stack<Double> stack = new Stack<>();stack.push(1.1);stack.push(2.2);stack.push(3.3);}
  • 队列Queue
    @Testpublic void testQueue() {Queue<Boolean> queue = new LinkedList<>();queue.offer(true);queue.offer(false);queue.offer(true);}
  • 二叉树
class TreeNode {int value;TreeNode left;TreeNode right;TreeNode(int value) {this.value = value;this.left = null;this.right = null;}
}
    @Testpublic void testTree() {TreeNode root = new TreeNode(1);root.left = new TreeNode(2);root.right = new TreeNode(3);root.left.left = new TreeNode(4);}

源码地址

Java中的数据结构

参考文章

  • Java数据结构

http://www.mrgr.cn/news/83427.html

相关文章:

  • 【批量拆分PDF】批量按页码范围拆分PDF并按页码重命名:技术难题与总结
  • day06_Spark SQL
  • Spring Boot 框架下的过滤器
  • flink的EventTime和Watermark
  • Linux 发行版介绍与对比:Red Hat、Ubuntu、Kylin、Debian
  • 基于springboot的网上购物商城源码(java+vue+mysql+文档)
  • 【MySQL学习笔记】MySQL视图View
  • C语言中两个不同类型的结构体相互赋值
  • ffmpeg 常用命令 案例
  • word中电流符号i或者j,这两个字母的头上的点会消失---完美解决办法
  • AI人工智能(3):Python 入门机器学习
  • fisco bcos CRUD编写合约的注意点
  • 【应用篇】09.自主Shell命令行解释器
  • mysql中创建计算字段
  • 音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流
  • ollama简单上手
  • 【C语言】_使用冒泡排序模拟实现qsort函数
  • java_将数据存入elasticsearch进行高效搜索
  • Vue Router4
  • Flask----前后端不分离-登录
  • 【算法与数据结构】—— 回文问题
  • 有心力场的两体问题
  • 修改之前的代码使得利用设备树文件和Platform总线设备驱动实现对多个LED的驱动【只是假想对LED进行驱动,并没有实际的硬件操作】
  • 大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(2)
  • android四大组件之一——Service
  • 探索 C++ Insights: 理解编译器背后的 C++ 实现