Сортировка массива int, привязанного к массиву строк в Java - PullRequest
2 голосов
/ 30 декабря 2010

У меня есть два массива:

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 ]

4 голосов
/ 30 декабря 2010

Вы путаете, как используется TreeMap. TreeMap сохраняет ключи отсортированными. В вашем случае у вас есть один ключ - intArray, поэтому сортировать нечего. Вы должны поместить каждую пару в карту: theMap.put(intArray[i], strArray[i]) для каждого возможного i.

Кстати, если это только для сортировки, вам не нужно обязательно TreeMap. Вы можете составить список класса, который переносит точку и строку, а затем отсортировать их с помощью Collections.sort(list). Конечно, вы должны реализовать Comparable интерфейс.

1 голос
/ 30 декабря 2010
for(int i=0; i< intArray.length; i++)
  theMap.put(intArray[i],strArray[i])
1 голос
/ 30 декабря 2010

Да, TreeMap должен работать нормально. Однако вместо добавления обоих массивов добавьте каждую пару значений.

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