これは、トリッキーなデータ構造とデータ編成のケースです。
大きなファイルからデータを読み取り、いくつかの(12未満の)グループに分類されてデータベースに保存されるさまざまなタイプ(、、、など)Boolean
のInteger
オブジェクトを生成するアプリケーションがあります。String
現在、各オブジェクトは単一のHashMap<String, Object>
データ構造に格納されています。それぞれがHashMap
単一のカテゴリ(グループ)に対応します。各データベースレコードは、すべてのカテゴリ(HashMapデータ構造)に含まれるすべてのオブジェクトの情報から構築されます。
HashMap
後続のレコードが列の数とタイプで「同等」であるかどうかを確認するための要件があります。ここで、各格納オブジェクトの名前(キー)とタイプ(実際のクラス)を比較することにより、すべてのマップで同等性を検証する必要があります。
元のオブジェクトの分類を維持しながら、この機能を効率的に実装する方法を探しています。これは、可能な限り最速の方法でオブジェクトをカテゴリ別に一覧表示することも要件であるためです。
キーを並べ替えて(たとえば、それぞれHashMap
をに置き換えるTreeMap
など)、すべてのマップをウォークオーバーするというアイデアがあります。TreeMap
別の方法は、比較の目的でのみ、のすべてをコピーすることです。
この機能を実装する最も効率的な方法は何でしょうか?
また、連続するレコード間の違い(つまり、追加されたフィールドと削除されたフィールド)をどのように見つけますか?