Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 19:47   #1
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
Вопрос Сортировка двух взаимосвязанных массивов

Здравствуйте

Подкажите, можно ли как то отсортировать два массива: String[] и long[], отсортировав лексикографически сроки, при этом сохранив соответствие чисел строке.
Создавать новый массив объектов с двумя полями не хотелось бы. Помещать в TreeMap тоже расточительно.
Gapro вне форума Ответить с цитированием
Старый 17.06.2012, 18:59   #2
arehscm
Новичок
Джуниор
 
Регистрация: 17.03.2010
Сообщений: 1
По умолчанию

преждевременная оптимизация - враг программиста )

а если серьезно, то, на мой взгляд оптимально было бы создать объект - пару, переопределить компаратор и сортировать обычным образом:

Код:
/**
 * User: Terminator
 * Date: 17.06.2012
 * Time: 20:32:35
 */
public class Sort {

    static class Pair implements Comparable {
        private long l;
        private String s;

        public Pair(String name, long value) {
            s = name;
            l = value;
        }

        public long getValue() {return l;}
        public String getName() {return s;}

        public int compareTo(Object o) {
            if(! (o instanceof Pair)) return -1;
            Pair right = (Pair)o;
            return s.compareTo(right.getName());
        }

        public String toString() {return s + ": " + l;}
    }

    public static void main(String[] args) {
        Pair[] pairs = new Pair[5];
        pairs[0] = new Pair("Banner", 8);
        pairs[1] = new Pair("Zuxel", 25);
        pairs[2] = new Pair("Trinity", 6);
        pairs[3] = new Pair("Forest", 17);
        pairs[4] = new Pair("Asus", 10);
        System.out.println("before sort:");
        for(Pair p : pairs) {
            System.out.println(p);
        }

        Arrays.sort(pairs);
        System.out.println("after sort:");
        for(Pair p : pairs) {
            System.out.println(p);
        }
    }
}
arehscm вне форума Ответить с цитированием
Старый 17.06.2012, 19:59   #3
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Дак я так и делаю, но тут оптимизация не преждевременная, мне нужна именно скорость
Gapro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка двух массивов saggy Общие вопросы Delphi 9 13.06.2012 22:07
Сортировка двух массивов одновременно AnnaFiotika Паскаль, Turbo Pascal, PascalABC.NET 4 20.12.2011 13:16
Сортировка двух массивов Lodyr Общие вопросы C/C++ 8 18.11.2010 19:48
Славание двух массивов и их сортировка с использование функций! sproject Помощь студентам 7 15.04.2010 12:28
Сортировка двух массивов одновременно antoha73 Общие вопросы Delphi 12 04.01.2010 23:14