首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中存储对象并在以后检索它们?

如何在java中存储对象并在以后检索它们?
EN

Stack Overflow用户
提问于 2019-05-09 21:03:23
回答 3查看 2.6K关注 0票数 1

我正在编写一个代码,它读取用户输入模型,然后对给定的数据执行数值计算。目前,数据结构被设置为数组。例如,如果用户输入文件指定具有过滤器流量和时间值的单个间隔,则这些值存储在以下数组中:

代码语言:javascript
复制
filter_flow_rate[0]
filter_time[0]

如果使用另一个过滤器流量和时间值指定了第二个隔间,则该值存储为:

代码语言:javascript
复制
filter_time[1]
filter_flow_rate[1]

也就是说,数组的第一个维度指定间隔号,而数组的名称指定值的类型。我正在改变这个结构。我创建了一个过滤器类,它在读取过滤器时被实例化。我将过滤器实例存储在哈希表中,其中键是隔间号,值是过滤器实例。现在,当我需要filter对象及其字段时,我可以这样找到它们:

代码语言:javascript
复制
filter.get(iCompartment);
double x = filter.flowRate; // example of retrieving flow rate value
double y = filter.time;     // example of retrieving time value

我更喜欢这种结构,但如果可能的话,我想删除哈希表。最好是创建一个舱室类,在读取一个间隔时实例化它。然后,如果一个过滤器被读入,它可以与该间隔对象相关联,并且可以以这样的方式存储和检索:

代码语言:javascript
复制
compartment.filter.flowRate = ...

在这里,间隔实例与过滤器实例相关联,这比使用笨拙的哈希表方法更可取,在这种方法中,密钥位于筛选器对象的位置。问题是我不知道怎么做。是否有一个好的方法来实现类似上述的东西?

EN

Stack Overflow用户

发布于 2019-05-09 21:28:36

我会创建一个类,正如您在回答中所建议的那样,您可以这样做:

代码语言:javascript
复制
public class Filter{
    double time;
    double flowRate;

//constructor
public Filter(double time, double flowRate){
    this.time = time;
    this.flowRate = flowRate;
}

}

根据我在你的解释中所读到的,这个隔间实际上不是一个编号的索引吗?在这种情况下,您可以初始化一个列表,每当读取一个新的列表时,就可以将它添加到列表中,如下所示:

代码语言:javascript
复制
filterList.add(new Filter(x, y)) // your double values would be passed instead of x and y

如果隔间实际上也是一种数据类型,那是行不通的。在这种情况下,如果您也可以张贴舱室代码,这将是有帮助的。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56067554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档