我写一个程序,其中,我将读取多个文件数据转换为ArrayList<E>
基于容器和输出经处理的数据到一个应用于LineChart由数据被记录的日期(X绘图数据(y轴)的数值-轴)。什么是有效的数据结构来包含多个复杂的类对象并通过一个公共参数来组织它们?
一个I构建了三个关键类是基础类DataPoint
它执行批量数据处理和验证的为DataPoint
类对象。
另一个是DataArrayList<T extends DataPoint>
从其超ArrayList<E>
延长。 DataArrayList
是排序,概括的接口(我想我正确地使用这个词),并含有DataPoint
类对象。
最后键类,我已经挣扎的一个,是HomeDataPoint
其中将包含一个编号DataPoint
类对象为一个时间点,所以每个DataPoint
必须彼此的同一指定的时间周期内。我已经与指定的时间段是一天一个默认测试这个(每包含DataPoint
必须在同一天被读取),但最终我觉得我目前的数据结构是为我创建不足,销毁,重新定义,并重新创造了无数次。也就是说,我尝试将包含的DataPoint
对象存储在ArrayLists,LinkedHashSets中,并作为单个的DataPoint
对象进行存储。在与泛型的交互,数据的封装以及输入的并行处理之间,我都迷失了方向。
下面是HomeDataPoint
insert()
方法的代码,其中包含可能的进入DataPoint
类对象的类型的枚举,并且它的声明的成员变量:
private enum DataType
{
WEATHER_CLASS(WeatherDataPoint.class),
ELECTRIC_CLASS(ElectricDataPoint.class), GAS_CLASS(GasDataPoint.class);
private final Class<? extends DataPoint> type;
DataType(Class<? extends DataPoint> type)
{
this.type = type;
}
public Class<? extends DataPoint> getType()
{
return type;
}
}
private DataArrayList<WeatherDataPoint> weatherLowPoints = null;
private DataArrayList<WeatherDataPoint> weatherHighPoints = null;
private DataArrayList<ElectricDataPoint> electricPoints = null;
private DataArrayList<GasDataPoint> gasPoints = null;
而且insert()
方法:
public boolean insert(DataPoint dataElement)
{
if (totalSize() > 0 && !getDate().substring(0, 10).equals(dataElement.getDate().substring(0, 10)))
{
return false;
}
else if (totalSize() == 0)
{
setDate(dataElement.getDate());
}
for (DataType type : DataType.values())
{
if (type.getType().equals(dataElement.getClass()))
{
switch (type)
{
case WEATHER_CLASS:
weatherLowPoints.add((WeatherDataPoint) dataElement);
weatherHighPoints.add((WeatherDataPoint) dataElement);
return true;
case ELECTRIC_CLASS:
electricPoints.add((ElectricDataPoint) dataElement);
return true;
case GAS_CLASS:
gasPoints.add((GasDataPoint) dataElement);
return true;
default:
return false;
}
}
}
return false;
}
我有点担心自己会变得一般。我不知道我想问什么,但我知道我想要做什么。我认为需要最大改进的部分是'insert()'方法。如,如果一个''类的WeatherDataPoint'对象DataPoint',例如,被传递到插入'()'方法,该点会被添加到两个'weatherLowPoints'和'weatherHighPoints'。我宁愿控制添加哪一个(具有高温点或低温点的那个),但是我目前的结构不容易这样做,特别是因为我希望它能够普遍工作。 –
你在那里漫无目的地漫步,然后从不回答问题。或换句话说,“嗯?”。说真的,我不知道你在做什么或者你希望我们帮你做什么。请编辑您的文本,并至少*提出问题*。 –
对不起。在这一点上,我觉得我不能提出一个具体的问题,因为我已经得到了与每个DataPoint类的更大结构相关的代码问题。我试图删除我的帖子,因为它是无益的,但我不允许。 –