当前位置:   article > 正文

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

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

前言

    在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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、 位集合(BitSet

1、定义

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

2、方法

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

3、适用场景

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

BitSet bitSet = new BitSet(8);  // 创建一个8位的位集合
bitSet.set(2);  // 设置第2位为true
bitSet.set(4);  // 设置第4位为true

if (bitSet.get(2)) {
    System.out.println("第2位为true");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

四、向量(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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

五、栈(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++
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

六、字典(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
  • 1
  • 2
  • 3
  • 4
  • 5

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

七、哈希表(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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

八、 属性(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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

二维表总结

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/949262
推荐阅读
相关标签
  

闽ICP备14008679号