[英]Best way to save some data and then retrieve it
我有一個項目,在其中保存了一些來自Soap Service不同渠道的數據,例如:
String_Value Long_timestamp Double_value String_value String_value Int_value
我可以有很多行(即200行),它們的值不同,例如上面的那一行。
我以為可以使用ArrayList
,但是數據的結構可以不同於上面的結構,因此ArrayList
可能不是從中檢索數據的好方法。
例如,在上面的示例中,在始終固定的前兩個值之后,我有4個值,但是在另一個通道中,我可能有3個或5個值。 我想要檢索數據,我必須知道有多少個值具有特定的行,而且我認為Arraylist
不能幫上忙。
我可以使用什么解決方案?
當您需要唯一地標識不同長度的輸入時, HashMap
通常可以很好地工作。 例如,您可以擁有一個類:
public class Record
{
private HashMap<String, String> values;
public Record()
{
// create your hashmap.
values = new HashMap<String, String>();
}
public String getData(String key)
{
return values.get(key);
}
public void addData(String key, String value)
{
values.put(key, value);
}
}
使用這種類型的結構,您可以根據需要保存盡可能多的不同值。 我要做的是遍歷從Soap
傳遞的每個值,然后簡單地添加到Record
,然后保留Record
對象的列表。
Record rec = new Record();
rec.addData("timestamp", timestamp);
rec.addData("Value", value);
rec.addData("Plans for world domination", dominationPlans);
您可以構建代表實體的類,然后構建解析器...如果它不是標准格式(例如JSON,YAML,ecc ...),則您無權開發自己的解析器。
用字段創建一個類。
class ClassName{
int numberOfValues;
String dataString;
...
}
現在,創建該類的ArrayList(例如ArrayList<ClassName>
並為每個記錄用numberOfValues和dataString填充該類對象,然后添加Arraylist。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.