Java-数据结构(一)-java1中有哪些数据结构呢?

这里写目录标题

  • 前言
  • 一、为什么需要数据结构?
    • 1、低效的操作
    • 2、占用过多的内存空间
    • 3、困难的数据操作
  • 二、枚举(Enumeration)
    • 1、定义
    • 2、关键字
    • 3、适用场景
  • 三、 位集合(BitSet)
    • 1、定义
    • 2、方法
    • 3、适用场景
  • 四、向量(Vector)
    • 1、定义
    • 2、方法
    • 3、适用场景
  • 五、栈(Stack)
    • 1、定义
    • 2、方法
    • 3、适用场景
  • 六、字典(Dictionary)
    • 1、定义
    • 2、方法
  • 七、哈希表(Hashtable)
  • 八、 属性(Properties)
  • 二维表总结

前言

    在Java中,数据结构是指在程序中用来组织和存储数据的方式。Java提供了丰富的数据结构,可以根据不同的需求选择合适的数据结构来操作和处理数据。本文将介绍在Java1版本工具包中的主要数据结构,包括枚举、位集合、向量、栈、字典、哈希表、属性。

一、为什么需要数据结构?

    在计算机编程中,我们经常需要处理大量的数据。如果没有合适的数据结构来存储和操作这些数据,那么我们将会面临以下问题:

1、低效的操作

    没有数据结构,我们可能需要遍历整个数据集合来查找特定的数据,这样的操作时间复杂度往往很高,使得程序变得低效。

2、占用过多的内存空间

    数据结构可以帮助我们有效地存储和管理数据,从而避免浪费过多的内存空间。

3、困难的数据操作

    某些特定的操作,如插入、删除、排序等,如果没有合适的数据结构,将会变得非常困难和复杂。

    因此,数据结构的引入可以极大地提高程序的运行效率和可维护性

二、枚举(Enumeration)

1、定义

    枚举是一种特殊的数据类型,用于定义一组命名常量。

2、关键字

    在Java中,枚举类型是通过关键字enum来定义的。

3、适用场景

    枚举常常用于表示一组有限的取值范围,比如一周的星期几、颜色等。枚举类型可以通过values()方法获得所有的枚举常量。

enum Weekday {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}// 使用枚举常量
Weekday day = Weekday.MONDAY;
System.out.println(day);  // 输出:MONDAY

三、 位集合(BitSet)

1、定义

    位集合是用来存储位的数据结构。

2、方法

    在Java中,BitSet类提供了一组方法来操作位集合。
在这里插入图片描述

3、适用场景

    位集合可以用来表示一组开关状态、标志位等。

BitSet bitSet = new BitSet(8);  // 创建一个8位的位集合
bitSet.set(2);  // 设置第2位为true
bitSet.set(4);  // 设置第4位为trueif (bitSet.get(2)) {System.out.println("第2位为true");
}

四、向量(Vector)

1、定义

    向量是一种动态数组,其长度可以根据需要增长或缩小。

2、方法

    在Java中,Vector类提供了一组方法来操作向量。
在这里插入图片描述

3、适用场景

    向量可以存储任意类型的对象,并且可以根据需要自动调整大小。

Vector<String> vector = new Vector<>();
vector.add("Apple");
vector.add("Banana");
vector.add("Orange");System.out.println(vector.get(0));  // 输出:Apple

五、栈(Stack)

1、定义

    栈是一种后进先出(LIFO)的数据结构,只允许在一端(栈顶)进行插入和删除操作。

2、方法

    在Java中,Stack类继承自Vector类,提供了一组方法来操作栈。

在这里插入图片描述

3、适用场景

    栈常常用于方法调用、表达式求值和内存管理等场景。

Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("C++");System.out.println(stack.pop());  // 输出:C++

六、字典(Dictionary)

1、定义

    字典是一种键值对的数据结构,也可以理解为映射(Map)。

2、方法

    在Java中,Dictionary是一个抽象类,常用的实现类是Hashtable。
在这里插入图片描述

Dictionary<String, String> dictionary = new Hashtable<>();
dictionary.put("name", "Tom");
dictionary.put("age", "25");System.out.println(dictionary.get("name")); // 输出:Tom

    字典允许通过键来查找和存储值。

七、哈希表(Hashtable)

Hashtable<String, Integer> hashtable = new Hashtable<>();
hashtable.put("apple", 1);
hashtable.put("banana", 2);
hashtable.put("orange", 3);System.out.println(hashtable.get("banana"));  // 输出:2

    哈希表根据键的哈希值来存储和定位值的位置,具有快速的查找和插入性能。

八、 属性(Properties)

    属性是一种特殊的字典,用于存储配置信息。
    在Java中,Properties类继承自Hashtable,专门用于处理属性配置文件。

Properties properties = new Properties();try (InputStream input = new FileInputStream("config.properties")) {properties.load(input);
} catch (IOException e) {e.printStackTrace();
}String username = properties.getProperty("username");
String password = properties.getProperty("password");System.out.println("Username: " + username);
System.out.println("Password: " + password);

    属性可以将配置信息以键值对的方式存储和读取,常用于读取和存储应用程序的配置参数。

二维表总结

在这里插入图片描述
在这里插入图片描述
数据结构的文章持续更新中,喜欢的小伙伴持续关注哦

如果本篇博客对您有一定的帮助,请您留下宝贵的三连:留言+点赞+收藏哦。

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

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

相关文章

联邦学习 (FL) 中常见的3种模型聚合方法

联邦学习 (FL) 中常见的3种模型聚合方法 联合学习 (FL) 是一种出色的 ML 方法&#xff0c;它使多个设备&#xff08;例如物联网 (IoT) 设备&#xff09;或计算机能够在模型训练完成时进行协作&#xff0c;而无需共享它们的数据。 “客户端”是 FL 中使用的计算机和设备&#x…

通用分页详解【下】

目录 前言 一、通用分页的核心思想 二、PageBean的分页要素及优化 三、SQL的通用 1.获取总记录数 2.获取分页语句 四、PageTag的核心逻辑见解 五、运行流程 案例运用 注意&#xff1a; 1.pageBean优化 2.tld文件 3.分页标签助手类 4.Servlet层 5.jsp页面 6.结果输…

借助APlayer、MetingJS实现 网页音乐播放器

借助APlayer、MetingJS实现 1、src/publi/index.html引入 <script src"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script> <script src"https://cdn.jsdelivr.net/npm/meting2.0.1/dist/Meting.min.js"></scri…

2.Elasticsearch核心概念

文章目录 一、Es中的核心概念1.1文档和字段1.2 索引和映射1.3 Mysql与Elasticsearch的区别1.4 Elasticsearch中分片的概念1.4.1 什么是分片数1.4.2 什么是副本数1.4.3 分片和副本带来的好处一、Es中的核心概念 elasticsearch中有很多独有的概念,与mysql中略有差别,但也有相似…

一步一步学OAK之五:通过OAK相机实现边缘检测

目录 边缘检测简介Setup 1: 创建文件Setup 2: 安装依赖Setup 3: 导入需要的包Setup 4: 创建pipelineSetup 5: 创建节点创建相机节点创建边缘检测节点创建XLinkOut数据交互的节点 Setup 6:设置相关属性设置彩色相机的相关属性设置左侧和右侧的单目相机的相关属性设置边缘检测器的…

加速优化WooCommerce跨境电商网站的15种简单方法

Neil Patel和 Google所做的研究表明&#xff0c;如果加载时间超过三秒&#xff0c;将近一半的用户会离开网站。页面加载时间每增加一秒&#xff08;最多5秒&#xff09;&#xff0c;您的收入可能就会减少。在本教程中&#xff0c;我们将学习如何优化加速WooCommerce商店。 目录…

Linux 的逻辑世界与 Windows 的复杂性

Linux的逻辑世界与Windows的复杂性 作为操作系统&#xff0c;Linux 和 Windows 都在全球用户心中赢得了一席之地。 这两种系统都很常用&#xff0c;每种都有不同的原因和目的。 作为一名有用的 AI 助手&#xff0c;我有机会广泛使用 Linux 和 Windows&#xff0c;并且我想探索…

centos7 安装Python3.9

1. 安装编译相关软件 su yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum install libffi-devel -y2.下载安…

B+树

B树 B树是对B树的一种变形树&#xff0c;它与B树的差异在于: 非叶结点仅具有索引作用&#xff0c;也就是说&#xff0c;非叶子结点只存储key&#xff0c;不存储value 树的所有叶结点构成一个有序链表&#xff0c;可以按照key排序的次序遍历全部数据 B树存储数据 若参数M选…

Learn Mongodb了解DB数据库 ①

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

Splunk Enterprise 9.1.0 (macOS, Linux, Windows) - 机器数据管理和分析

Splunk Enterprise 9.1.0 (macOS, Linux, Windows) - 机器数据管理和分析 请访问原文链接&#xff1a;https://sysin.org/blog/splunk-9/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 混合世界的数据平台 快速、大规模地从…

emscripten的安装

参考&#xff1a;1.1 安装Emscripten-C/C面向WebAssembly编程 下载emsdk&#xff08;emscripten&#xff09;&#xff0c;git地址&#xff1a;git clone GitHub - emscripten-core/emsdk: Emscripten SDK打开emsdk中emsdk.bat所在的目录&#xff0c;进入cmd&#xff0c;输入 e…