Сортировка выбора java-массива

Я делаю проект, в котором я должен создать список массивов размером с пользовательский ввод (в данном случае я выбрал 4) со случайными числами от -1000 до 1000. Затем мне нужно, чтобы он выполнял сортировку выбора и отображал как несортированные числа в output1, так и отсортированные числа в output2 Вот что у меня есть до сих пор

ArrayList <Integer> unSortedNumbers = new ArrayList <Integer>();
Integer [] numberSort;

...

private void SortActionPerformed(java.awt.event.ActionEvent evt) {
    String input, sortedNumberOutput = "";
    int int1, int2 = 0, min = -1000, max = 1000, j, minimum, temp = 0;
    input = Input.getText();
    int1 = Integer.parseInt(input);

    Random number = new Random();

    while (int2 < int1) {
        for (int i = 0; i < int1; i++) {
            int randomInt = number.nextInt(max - min + 1) + min;
            unSortedNumbers.add(randomInt);
            int1--;
        }
    }

    numberSort = new Integer[unSortedNumbers.size()];
    unSortedNumbers.toArray(numberSort);


    for (int i = 0; i < numberSort.length; i++) {
        sortedNumberOutput += numberSort[i] + (i != numberSort.length ? "," : "");

    }
    if (Selection.isSelected() && Ascending.isSelected()) {
        for (int i = 0; i < numberSort.length - 1; i++) {
            minimum = numberSort[i];
            for (j = i + 1; j <= numberSort.length - 1; j++) {
                if (minimum > numberSort[j]) {
                    numberSort[temp] = numberSort[i];
                    numberSort[i] = numberSort[j];
                    numberSort[j] = numberSort[temp];
                }
            }
        }
    }

    Output1.setText("Unsorted Numbers " + unSortedNumbers);
    Output2.setText("Sorted Numbers " + numberSort);
    unSortedNumbers.clear();
    numberSort = null;
}                               

Поэтому, когда я запускаю это, unSortedNumbers правильно отображаются в output1, но вместо отображения отсортированных чисел в output2 отображается следующее: Sorted Numbers [Ljava.lang.Integer; @7a279c

Я не уверен, почему это происходит, возможно, я где-то ошибся. Если вы можете помочь, спасибо!


person user3570902    schedule 01.05.2014    source источник
comment
Используйте Arrays.toString для отображения содержимого массива.   -  person Alexis C.    schedule 02.05.2014
comment
хм, это не сработало, но спасибо за предложение   -  person user3570902    schedule 02.05.2014
comment
Output2.setText("Sorted Numbers " + Arrays.toString(numberSort)); должно работать.   -  person Alexis C.    schedule 02.05.2014
comment
Ладно, извините, у меня было что-то другое. Хорошо, я изменил его, и он работает, хотя, похоже, что-то не так с моим типом, но спасибо   -  person user3570902    schedule 02.05.2014


Ответы (1)


То, что вы видите, является результатом вызова метода toString() по умолчанию для объекта массива. [Ljava.lang.Integer говорит вам, что это массив целых чисел, а @7a279c дает вам шестнадцатеричную строку хэш-кода. Сделайте, как предлагает ZouZou, и используйте Arrays.toString(unSortedNumbers);

person jgitter    schedule 01.05.2014