对一个int数组进行排序,绑定到Java中的字符串数组

时间:2010-12-30 12:04:54

标签: java sorting treemap

我有两个数组:

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);

3 个答案:

答案 0 :(得分:4)

您对如何使用TreeMap感到困惑。 TreeMap保持按键排序。在您的情况下,您有一个键 - intArray,因此无需进行排序。您必须将每一对放入地图:theMap.put(intArray[i], strArray[i]),以便为每个可能的i

顺便说一句,如果仅用于排序,则不需要强制性TreeMap。您可以创建一个包含点和字符串的类的列表,然后使用Collections.sort(list)对其进行排序。当然,您必须实现Comparable接口。

答案 1 :(得分:1)

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

theMap.put(point1, worda);
theMap.put(point2, wordb);
theMap.put(point3, wordc);
theMap.put(point4, wordd);

答案 2 :(得分:1)

for(int i=0; i< intArray.length; i++)
  theMap.put(intArray[i],strArray[i])