保存一些数据然后检索它的最佳方法

时间:2013-09-03 09:52:25

标签: java arraylist

我有一个项目,我可以保存来自肥皂服务不同渠道的一些数据,例如:

String_Value Long_timestamp Double_value String_value String_value Int_value

我可以有许多行(即200),具有不同的值,如上面的那些。

我认为我可以使用ArrayList,但数据的结构可能与上面的结构不同,因此ArrayList可能不是一个很好的解决方案,以便从中检索数据。
例如,在上面总是固定的前两个值之后,我有4个值,但在另一个通道中,我可能有3个或5个值。我想要检索数据,我必须知道有多少值具有特定的行,我认为Arraylist对我没有帮助。

我可以使用什么解决方案?

3 个答案:

答案 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中。