2017-02-10 17 views
0

私の質問は、いつ新しいデータ構造を作成する必要があるのか​​、いつ組み込みのデータ構造を使用するのかです。Java - 利用可能なデータ構造を利用するか新しいデータ構造を作成する

ファイルを読み込む必要があるとします。パターンマッチングに基づいて、私は3つのプロパティを取得する必要があります。すなわちpropertyA, propertyB, propertyC

5つのファイルからこれら3つのプロパティを収集した後、データベースに書き込む必要があります。

オプション1:

ファイルがMapまたはJsonを返します読み取る読取装置を作成します。 リーダーを呼び出すクラスは返されたdataStructureを受け取ります。この場合、Map or Jsonです。

呼び出し元クラスMap<StringFileName, MapReturnedData>に別のマップを作成します。

すべてのファイルからすべてのデータを取得したら、データベースに入力します。

オプション2

代わりのMap or Json 3つの性質及びそのゲッターとセッターを持つユーザ定義クラスを作成します。

どちらを使用する必要がありますか?両方が同じ場合、ユーザー定義と組み込みを使用する必要がありますか?

+0

ソフトウェアでこのタスクを繰り返し実行する予定ですか?もしそうなら、3番目のオプションは、ファイルから読み込んだデータを表すPOJOクラスを作成し、それをHibernateのようなものを使ってデータベースに保持することです。 ORMツールの使用を計画していない場合、どちらのアプローチもJDBCで動作するはずです。 –

+0

@TimBiegeleisen私は、これらのジョブを別のスレッドで繰り返し実行する必要があります。それは火花の仕事です。各スレッドは、私が説明したことを行います。データベースはhbaseです。助けてください –

+0

@TimBiegeleisenのアドバイスに従います。 5ファイルの3つのプロパティのカスタム構造からのパフォーマンスの向上は見られません。 15読み込み/保存* Nまたは3 * 5?パターンが正しく一致することからパフォーマンスが向上する可能性があります – efekctive

答えて

0

私の見解では、データの処理量はどれくらいですか。 3つのプロパティが読み取られてDBに書き込まれる場合、オプション1は単純な選択肢です。作成されるオブジェクトの数が減るため、パフォーマンスが向上する可能性があります。一方、データに書式設定と変換が必要な場合、新しいフィールドなどを作成するためにいくつかのフィールドを処理している場合は、データをよく書かれたクラス構造に読み込み、そのクラス内の処理(オプション2)。

+0

うん。読み書きだけ。処理は不要 –

0
  1. あなたが大規模なファイルを持っているし、あなたのデータ構造を定義した場合、あなたはファイルからデータを取得するためにMapまたはJson方法を使用してDBにそれを置くことができ、あなたは簡単にデータ型で構築によってサポートされているデータを持っていることを意味。 NOSqlデータベースを使用している場合は、1番目のオプションが有効でした。 ファイルからデータを読み込んだ後に何らかの処理があった場合、このオプションは有効でした。

  2. テストシナリオに応じて、独自のPOJOを3つのプロパティで使用する必要があります。すなわちpropertyA, propertyB, propertyC読み書きだけの場合、このオプションは理想的な選択です。

POJOオプションを使用している場合、プロパティの追加や削除の柔軟性が向上します。 あなたが独自のマークをしたい場合は、ユーザ定義のオプションに行きます。

ユーザー定義とに内蔵を使用する。データ・タイプ内蔵

int, float array, etcような汎用データタイプです。

ユーザー定義データ型は、ユーザー/プログラマー自身が定義するデータ型です。たとえば、クラス、インタフェースなどです。データが組み込みのデータ型に適していない場合は、ユーザー定義のデータ型のみを使用します。

あなたのデータに基づいて決定してください。&どのようにそのデータを管理しますか? さらに詳しくはthis linkをご覧ください。

関連する問題