2

パフォーマンスに基づいてどちらが優れているかを提案したいですか?

リスト<byte[]>

また

HashMap <String、byte []>

私にとってキーは重要ではありません。リストサイズ2のみをオブジェクトに格納します。最初の1つは1つの定数を表し、もう1つは別の定数を表します。

また、2つ以外のより良い解決策はありますか?私に提案してください。

前もって感謝します。

4

4 に答える 4

5

リストとマップをどのように比較できますか?それらは完全に異なるものです。また、実行する操作によっても異なります。

最後に、具体的な実装(ハッシュマップ)を抽象的なインターフェイス(リスト)と比較しています。それは意味がありません。

キーが必要ない場合は、マップは必要ありません。さまざまなリスト実装のパフォーマンスについては、javadocに文書化されています。

于 2012-04-25T14:11:13.933 に答える
0

値を保持するpojoクラスを作成してみませんか?

Class ConstantHolder {

  private final byte[] constant1;
  private final byte[] constant2;

  public Holder(byte[] constant1, byte[] constant2) {
    this.constant1 = constant1;
    this.constant2 = constant2;
  }

  getters for constants;

}
于 2012-04-25T14:15:02.967 に答える
0

リスト:
次の場合、リストは垂直方向に高速に動作します。

  1. 最初と最後に新しいオブジェクトを追加する

  2. 次の場合、リストの最初と最後で削除すると、垂直方向の動作が遅くなります。
  3. オブジェクトがリンクされたリストに従ってリンクされているため、垂直方向に検索する必要がある場合、検索はある程度遅くなります。
  4. 途中で追加、削除。

HashMap: マップであり、キーによって縦方向および横方向に検索できます:

  1. イテレータは検索に使用され、追加が遅い(ここで適用される場合は一意のキーを確認するため)
  2. 削除が速い
  3. 検索が速い
于 2012-04-25T14:25:35.410 に答える
0
  1. キーと値の関係がない場合は、マップを使用しないでください。
  2. ジェネリックと配列を混在させないでください (例: List<byte[]>)。

2 つが関連していない場合は、2 つの別個のbyte[]変数を使用し、関連している場合はbyte[][](できないと仮定してList<List<Byte>>) 使用します。

于 2012-04-25T14:10:50.287 に答える