Работа с ArrayList

Как можно заполнить ArrayList сразу значениями? Например если бы был обычный тип данных, то с помощью Collections.addAll(...). По заданию надо заполнить переменные value1 и value2 так: value1 = (a, 1, 0) value2 = (b, 0, 1)

public static ArrayList<BigInteger> Euclid(BigInteger a, BigInteger b) {
    if(a.compareTo(b) > 0) {
        ArrayList<BigInteger> value1 = new ArrayList<BigInteger>();
        ArrayList<BigInteger> value2 = new ArrayList<BigInteger>();
    }
}

Как это можно сделать, 6 раз не вызывая value1.add()


Ответы (1 шт):

Автор решения: Nowhere Man

Следует использовать конструктор ArrayList<>(Collection<? extends E> collection), принимающий на вход "начальную" коллекцию, которую можно формировать несколькими способами:

  1. Arrays.asList:
import static java.util.Arrays.asList;
import static java.math.BigInteger.ONE;
import static java.math.BigInteger.ZERO;

// ...

List<BigInteger> value1 = new ArrayList<>(asList(a, ONE, ZERO));
List<BigInteger> value2 = new ArrayList<>(asList(b, ZERO, ONE));
  1. List.of (Java 9+)
List<BigInteger> value1 = new ArrayList<>(List.of(a, ONE, ZERO));
List<BigInteger> value2 = new ArrayList<>(List.of(b, ZERO, ONE));

→ Ссылка