Как добавить строку и int и отсортировать по int - PullRequest
0 голосов
/ 31 августа 2011

Я пытаюсь запрограммировать простую консольную программу, которая принимает строку и целое число в качестве входных данных, вводит их в массив, сортирует их по целому числу и возвращает содержимое соответствующим образом.Я давно борюсь с этой программой, поэтому большое спасибо за помощь:).

Ответы [ 5 ]

4 голосов
/ 31 августа 2011

На подходе было бы создать класс, который содержит как строковую, так и int-часть информации.Вы можете создать экземпляр для каждой пары int / string.Затем вы можете поместить эти экземпляры в массив.

Затем вы можете отсортировать массив, используя Arrays.sort .Обратите внимание, что ваш класс должен будет реализовать Comparable, как сказано в связанной документации API.

2 голосов
/ 31 августа 2011

Вместо массива используйте TreeMap<Integer, String>.TreeMap сортируется по «ключу» в естественном порядке.Все, что вам нужно сделать, это перебрать его.

Решение, предоставленное amit, тоже в порядке.

0 голосов
/ 31 августа 2011

Я бы не использовал массив для ввода, если вы не знаете количество записей.Вы можете использовать ArrayList, так что вам не нужно знать.

class StringInt implement Comparable<StringInt> {
    final String string;
    final int num;

    public StringInt(String string, int num) { 
       this.string = string; 
       this.num = num; 
    }

    public int compareTo(StringInt si) {
        return num > si.num ? +1 : num < si.num ? -1 : 0;
    }
}

List<StringInt> list = new ArraysList<StringInt>();

// add element.
list.add(new StringInt("Hello", 1));

// sort them
Collections.sort(list);
0 голосов
/ 31 августа 2011

Я иду против течения здесь. У всех есть совет, чтобы вы использовали Arrays.sort (), я советую вам не делать этого.

А вот и причина. Когда я начинаю изучать программирование, я нахожу забавную и очень хорошую форму обучения для реализации собственных алгоритмов, и у вас будет гораздо более глубокое понимание компьютерных наук, если вы несколько раз реализовали сортировку самостоятельно. Так что сделайте свой собственный алгоритм сортировки, и когда вы почувствуете себя некомфортно, используйте Arrays.sort ().

0 голосов
/ 31 августа 2011

Вы должны написать класс с полями int и String в качестве полей и реализовать Comparator для этого класса.вставьте свои элементы в массив и просто используйте Arrays.sort () , чтобы отсортировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...