2

我有两个数组:

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

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

现在,我想按数字顺序对 intArray 进行排序,以便 strArray 遵循相同的顺序。我确定这是一个常见问题,但我无法让它工作。我制作了一个 TreeMap 并添加了每个数组中的值。TreeMap 不应该按键 intArray[] 自动排序吗?它似乎不起作用。

        TreeMap theMap = new TreeMap();

        theMap.put(intArray, strArray);
4

3 回答 3

4

您对 aTreeMap的使用方式感到困惑。TreeMap保持键排序。在您的情况下,您只有一把钥匙 -intArray所以没有什么需要排序的。您必须将每一对放入地图中:theMap.put(intArray[i], strArray[i])对于每个可能的i.

顺便说一句,如果只是为了排序,你不需要强制 a TreeMap。您可以制作一个包含点和字符串的类的列表,然后使用Collections.sort(list). 当然你必须实现Comparable接口。

于 2010-12-30T12:12:13.340 回答
1
for(int i=0; i< intArray.length; i++)
  theMap.put(intArray[i],strArray[i])
于 2010-12-30T12:14:20.777 回答
1

是的,TreeMap 应该可以正常工作。但是,不是添加两个数组,而是添加每对值。

theMap.put(point1, worda);
theMap.put(point2, wordb);
theMap.put(point3, wordc);
theMap.put(point4, wordd);
于 2010-12-30T12:11:32.810 回答