0

私は今これを持っていますが、キーが衝突すると問題が発生します (これは、double に非常に小さな数を追加することで修正します。しかし、これはうまく機能しません (そして、小さな数を追加したくありません)。

 TreeMap<Double, String> statisticAndTitle = new TreeMap<Double, String>(Collections.reverseOrder());

文字列は一意であるため、次の場合:

  • D1.1
  • B2.0
  • C4.0
  • 1.1
  • E 3.3

私はそれをD1 A1 B2 E3 C4としてソートしたい(リスト内の出現順序(アルファベット順ではない)が重要です.D1がリスト内のA1の前にある場合は、マップ内でもそうでなければなりません(つまり、単にソートできないことを意味します)リスト内の場所を考慮していないため、通常の並べ替えアルゴリズムを使用した 2 番目の列)

マップやその他の方法で実装する方法についてのアイデアはありますか?

4

2 に答える 2

1

D1 A1 B2 E3 C4 としてソートしたい (リスト内の出現順序 (アルファベット順ではない) が重要です。

リストは順序を維持します。

String 文字と Double 数値を保持するクラスを作成します。Comparable を実装し、クラスに compareTo メソッドを記述します。

クラスのリストを作成してロードします。

リストを並べ替えます。

于 2013-01-22T19:28:51.217 に答える
1

を使用しLinkedHashMapます。追加の順序を記憶します。

于 2013-01-22T19:34:37.843 に答える