печать массива из функции - Java

1

Я пытаюсь напечатать массив некоторых простых чисел, которые делятся на число, вывод, который я получаю для этого кода:

[Дж @15db9742

Как я могу напечатать массив, который я получаю от функции.

public static long[] primes(int n) {
    int count = 0;
    long arr1[] = new long[n];
    for (int i = 2; i < n; i++) {
        boolean prime = true;
        if (n % i == 0)
            for (int j = 2; j < i && prime; j++) {
                if (i % j == 0) prime = false;
            }
        if (prime && n % i == 0) {
            arr1[count] = i;
            System.out.println(arr1[count]);
            count++;
        }
    }

    long arr[] = new long[count];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = arr1[i];
    }
    return arr;
}
  • 5
    System.out.println(Arrays.toString(arr));
  • 0
    @pbabcdefp ответ самый лучший.
Теги:

2 ответа

4

Массив - это ссылочный тип.

И вы должны использовать утилиты класса Arrays для печати массивов:

Arrays.toString (массив)

для многомерных массивов:

Arrays.deepToString (массив)

КСТАТИ
Небольшие предложения вы можете использовать некоторую оптимизацию вместо цикла:

    for (int i = 0; i < arr.length; i++) {
        arr[i] = arr1[i];
    }

лучше использовать System.arraycopy():

System.arraycopy(arr1, 0, arr, 0, arr.length);

  • 0
    Или просто return arr1.clone() .
  • 0
    @LouisWasserman Это будет работать, но для многомерных массивов clone() не работает.
Показать ещё 3 комментария
0
for(long n: arr)
 System.out.println(n);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню