2

私は2つの配列を持っています:

int[] intArray = new int[]{point1,point2,point3,point4};

String[] strArray = new String[]{worda,wordb,wordc,wordd};

ここで、strArrayが同じ順序に従うように、intArrayを番号順に並べ替えます。これはよくある問題だと思いますが、うまくいきません。TreeMapを作成し、各配列から値を追加しました。TreeMapはキーintArray[]で自動的にソートするべきではありませんか?動作していないようです。

        TreeMap theMap = new TreeMap();

        theMap.put(intArray, strArray);
4

3 に答える 3

4

あなたはaがどのように使われるか混乱していますTreeMapTreeMapキーを並べ替えたままにします。あなたの場合、あなたは1つのキーを持っているintArrayので、ソートするものは何もありません。すべてのペアをマップに配置する必要があります:theMap.put(intArray[i], strArray[i])可能な限りすべてi

ちなみに、ソート専用の場合は必須ではありませんTreeMap。ポイントと文字列をラップするクラスのリストを作成し、それをで並べ替えることができCollections.sort(list)ます。もちろん、Comparableインターフェースを実装する必要があります。

于 2010-12-30T12:12:13.340 に答える
1

はい、TreeMapは正常に機能するはずです。ただし、両方の配列を追加する代わりに、値の各ペアを追加します。

theMap.put(point1, worda);
theMap.put(point2, wordb);
theMap.put(point3, wordc);
theMap.put(point4, wordd);
于 2010-12-30T12:11:32.810 に答える
1
for(int i=0; i< intArray.length; i++)
  theMap.put(intArray[i],strArray[i])
于 2010-12-30T12:14:20.777 に答える