我有一个项目,我可以保存来自肥皂服务不同渠道的一些数据,例如:
String_Value Long_timestamp Double_value String_value String_value Int_value
我可以有许多行(即200),具有不同的值,如上面的那些。
我认为我可以使用ArrayList
,但数据的结构可能与上面的结构不同,因此ArrayList
可能不是一个很好的解决方案,以便从中检索数据。
例如,在上面总是固定的前两个值之后,我有4个值,但在另一个通道中,我可能有3个或5个值。我想要检索数据,我必须知道有多少值具有特定的行,我认为Arraylist
对我没有帮助。
我可以使用什么解决方案?
答案 0 :(得分:2)
如果您需要唯一标识不同长度的输入,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);
答案 1 :(得分:1)
你可以构建代表实体的类,然后构建一个解析器......如果它不是标准格式(例如JSON,YAML,ecc ......),你就没有选择开发自己的解析器。 / p>
答案 2 :(得分:0)
创建一个包含字段的类。
class ClassName{
int numberOfValues;
String dataString;
...
}
现在创建该类的ArrayList,如ArrayList<ClassName>
,并为每个记录填充具有numberOfValues和dataString的类对象,并添加到Arraylist中。