2

Soap Service のさまざまなチャネルからのデータを保存するプロジェクトがあります。たとえば、次のようになります。

String_Value Long_timestamp Double_value String_value String_value Int_value

上記のように、さまざまな値を持つ多くの行 (つまり 200 行) を持つことができます。

を使用できると思いましたがArrayList、データは上記とは異なる構造を持つ可能性があるため、そこArrayListからデータを取得するには良い解決策ではないかもしれません。
たとえば、上記の例では、常に固定されている最初の 2 つの値の後に 4 つの値がありますが、別のチャネルでは 3 つまたは 5 つの値を持つ場合があります。データを取得したいのですが、特定の行に含まれる値の数を知る必要がありますが、それArraylistは役に立たないと思います。

どのようなソリューションを使用できますか?

4

3 に答える 3

2

さまざまな長さの入力を一意に識別する必要がある場合、HashMap通常は a が非常にうまく機能します。たとえば、次のクラスを作成できます。

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);
于 2013-09-03T09:58:26.403 に答える
0

フィールドを持つクラスを作成します。

class ClassName{

int numberOfValues;
String dataString;

...

}

次に、そのクラスの ArrayList を同様に作成し、ArrayList<ClassName>レコードごとにそのクラス オブジェクトに numberOfValues と dataString を入力し、Arraylist に追加します。

于 2013-09-03T10:07:29.017 に答える