gpt4 book ai didi

java - 使用什么数据结构?

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:18 24 4
gpt4 key购买 nike

我需要表示以下数据(用 Java):

  • 2012(年)
    • 01(月)
      • 01(日)
        • 你好我是一个字符串
      • 02
      • ...
    • 02
    • 03
    • 04

我正在考虑使用 TreeMap,但不确定如何使用。有什么想法吗?

最佳答案

注意事项,假设您对管理日历条目感兴趣:

  • 有无限可能的日期 -- 不要在未使用的日子上浪费内存
  • 给定一个日期,您希望快速访问当天 -- 使用 数组或 基于散列的查找
  • 每一天都有一个唯一的日期 -- map date => day

模型

// best to use ENUM for fixed set of constants
enum Month {
JANUARY, FEBRUARY, ... , NOVEMBER, DECEMBER
}

enum Weekday {
SUNDAY, MONDAY, ... , FRIDAY, SATURDAY
}

/**
* The day "data node". Fill in constructors/accessors.
*/
class Day {
int year;
Month month;
Weekday weekday;
String date; // hashkey
String entry; // the entry
}

/**
* The calendar, simply mapping a unique date to it's day.
* Create a date like: year + "-" + MONTH + "-" + DAY
*/
HashMap<String, Day> calendar;

风景
由于我们的数据结构并不稀疏,因此独立 View 必须模拟完整的日历。根据日历规则显示所有日期/生成所有日期,但如果保存了新条目,则只向 HashMap 添加一天。

注意事项

  • 在空间和时间上相当高效。
  • 上面过于简单了:将HashMap包裹在一个类中进行仲裁CRUD 的操作。
  • 假设您不需要操纵月/年,而只需操纵几天。如果这是错误的,并且您想例如获取 month 中的所有日期,或删除 year,考虑在上面添加一个像 year => month => day 这样的三级映射.

关于java - 使用什么数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9009273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com