Подтвердить что ты не робот

Как я могу инициализировать LinkedList с элементами/значениями в нем?

Итак, я знаю, как иметь связанный список и использовать метод add для ввода записей по элементам. Однако я не хочу добавлять записи по записям. Есть ли способ объявить связанный список с начальными значениями в списке?

Например, если я хочу иметь 1.0 и 2.0 в списке, есть что-то, что я могу сделать в одной строке? Что-то вроде:

List<Double> temp1 = new LinkedList<Double>(1,2);
4b9b3361

Ответ 1

Вы можете сделать это следующим образом:

List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));

Ответ 2

LinkedList имеет следующий конструктор, который принимает параметр типа Collection:

public LinkedList(Collection<? extends E> c)

Этот конструктор "Создает список, содержащий элементы указанной коллекции, в том порядке, в котором они возвращаются итератором коллекции".

Поэтому вы можете использовать этот конструктор для объявления LinkedList и инициализировать его значениями во время объявления. Вы можете предоставить экземпляр любого типа Collection<Double>.

Если у вас есть только набор значений, но не объект Collection, вы можете использовать класс java.util.Arrays, у которого есть статический метод asList(), который преобразует набор значений, предоставленных в List и вернуть. См. Пример ниже:

 List<Double> list = new LinkedList<Double>(Arrays.asList(1.2,1.3,3.2));

Если вам нужен экземпляр List<Double>, тогда вы должны предоставить значения десятичной точкой, иначе вы получите экземпляр List<Integer> со значениями.

Ответ 3

Вы также можете создать метод типа

static <T> LinkedList<T> createLinkedList(T...elements) {
    LinkedList<T> newList = new LinkedList<T>();
    for (T el : elements) {
        newList.add(el);
    }

    return newList;
}

И используйте его с помощью:

        LinkedList<Integer> a = createLinkedList(1, 2, 3);

        for (Integer item : a) {
            System.out.println(item);
        }