【问题标题】:How to save measuring data in Java in a easy way?如何以简单的方式在 Java 中保存测量数据?
【发布时间】:2020-03-25 08:24:23
【问题描述】:

我认为这是一个很容易解决的问题。但不知何故,我找不到解决方案。

我得到了三种类型的测量值(在字符串中)

String watt, ampere, volt;

每个时间戳都包含未知数量的测量值。

我想将数据(瓦特、安培、伏特)保存在时间戳中,并将所有时间戳保存在一组所有数据中。

所以我想以类似的方式访问我的数据:

setOfAllData.get("this timestamp").get("FIRST measurement (watt, ampere, volt)");
setOfAllData.get("same timestamp as above").get("SECOND measurement (watt, ampere, volt)");

这有点难以解释,但我希望我的意思可以理解,我感谢您的帮助。这应该用 Java 编码。

【问题讨论】:

  • 所以你想要一个 Map>? docs.oracle.com/javase/tutorial/collections
  • 你应该看看 Java 的 Collections Library,那里有很多很棒的工具和数据结构。我认为您正在寻找地图
  • 哇哦。没用过地图。但这看起来很有帮助。我稍后会尝试一下。我想这是我的问题的解决方案。非常感谢!
  • @Questioner123123 使用Map 和其他集合是Java 中的基本内容。我建议你花一些时间研究Oracle Tutorials,特别是one on collections

标签: java arrays arraylist multidimensional-array


【解决方案1】:

Measurement 定义一个类,其中包含三个成员变量,用于三个电气读数。 (顺便说一句,使用适当的数据类型,例如BigDecimalDouble,而不是全部使用String。)

将相关的Measurement对象收集到一个列表中,List< Measurement >

将该列表附加到键值以插入Map。键表示时间戳。我假设您将对这些时间戳值使用java.time.Instant。所以你的地图将是Map< Instant , List< Measurement > >

Map< Instant , List< Measurement > > map = new TreeMap<>() ;

在 Java 中将键映射到列表已在 Stack Overflow 上多次介绍过。因此,搜索以了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2021-12-05
    • 2016-12-26
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多