我寫一個程序,其中,我將讀取多個文件數據轉換爲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類的更大結構相關的代碼問題。我試圖刪除我的帖子,因爲它是無益的,但我不允許。 –