Как преобразовать массив в связанный список в Java - PullRequest
0 голосов
/ 06 сентября 2018

Я довольно новый Java-программист, и в настоящее время я учусь преобразовывать списки в массивы. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь связать список, вывод, который я получаю, не совпадает с тем, что находится в массиве. Вывод связанного списка - все нулевые значения, в то время как массив имеет случайные значения, как и должно быть. Вот мой код:

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class InsertingElements {
    public static void main(String[] args) {
        Integer[] numbers = new Integer[25];
        List<Integer> linkList = new LinkedList<>(Arrays.asList(numbers));

        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = (int) (Math.random() * 100 + 1);
        }

        System.out.println("Numbers Generated: " + Arrays.toString(numbers));

        numbers = linkList.toArray(new Integer[linkList.size()]);

        System.out.println("Numbers: ");
        for (Integer number : numbers) {
            System.out.println(number);
        }
    }
}

А вот и вывод:

Numbers Generated: [92, 61, 25, 8, 48, 80, 85, 89, 53, 18, 48, 38, 48, 
41, 93, 94, 24, 73, 83, 21, 18, 52, 3, 14, 10]
Numbers: 
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Попробуйте это

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

    public class InsertingElements {
        public static void main(String[] args) {
            Integer[] numbers = new Integer[25];

            for (int i = 0; i < numbers.length; i++) {
            numbers[i] = (int) (Math.random() * 100 + 1);
           }

           List<Integer> linkList = new LinkedList<>(Arrays.asList(numbers));
           System.out.println("Numbers Generated: " + Arrays.toString(numbers));

          numbers = linkList.toArray(new Integer[linkList.size()]);

          System.out.println("Numbers: ");
          for (Integer number : numbers) {
          System.out.println(number);
        }
      }
    }
0 голосов
/ 06 сентября 2018

Переместить List<Integer> linkList = new LinkedList<> (Arrays.asList(numbers)); к тому месту, где вы заполняете массив, иначе ваш связанный список - это просто список значений по умолчанию.

...