Ответ 1
Вы можете сделать это следующим образом:
List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));
Итак, я знаю, как иметь связанный список и использовать метод add для ввода записей по элементам. Однако я не хочу добавлять записи по записям. Есть ли способ объявить связанный список с начальными значениями в списке?
Например, если я хочу иметь 1.0 и 2.0 в списке, есть что-то, что я могу сделать в одной строке? Что-то вроде:
List<Double> temp1 = new LinkedList<Double>(1,2);
Вы можете сделать это следующим образом:
List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));
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>
со значениями.
Вы также можете создать метод типа
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);
}