Je sais donc comment avoir une liste chaînée et utiliser la méthode add pour saisir des entrées par entrées. Cependant, je ne veux pas ajouter d'entrées par entrées. Existe-t-il un moyen de déclarer une liste chaînée avec des valeurs initiales dans la liste?
Par exemple, si je veux avoir 1.0 et 2.0 dans la liste, puis-je faire quelque chose sur une seule ligne? Quelque chose comme:
List<Double> temp1 = new LinkedList<Double>(1,2);
Vous pouvez le faire de cette façon:
List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));
LinkedList
a le constructeur suivant, qui accepte un paramètre de type Collection
:
public LinkedList(Collection<? extends E> c)
Ce constructeur 'Construit une liste contenant les éléments de la collection spécifiée, dans l'ordre où ils sont renvoyés par l'itérateur de la collection.'
Par conséquent, vous pouvez utiliser ce constructeur pour déclarer un LinkedList
et l'initialiser avec des valeurs au moment de la déclaration. Vous pouvez fournir une instance de n'importe quel type Collection<Double>
.
Si vous ne disposez que d'un ensemble de valeurs mais pas d'un objet Collection
, vous pouvez utiliser la classe Java.util.Arrays
Qui a la méthode statique asList()
qui convertira l'ensemble de valeurs fourni à un List
et retour. Voir l'exemple ci-dessous:
List<Double> list = new LinkedList<Double>(Arrays.asList(1.2,1.3,3.2));
Si vous avez besoin d'une instance de List<Double>
, Vous devez fournir les valeurs avec une décimale, sinon vous obtiendrez une instance de List<Integer>
Avec les valeurs.
Vous pouvez également créer une méthode comme
static <T> LinkedList<T> createLinkedList(T...elements) {
LinkedList<T> newList = new LinkedList<T>();
for (T el : elements) {
newList.add(el);
}
return newList;
}
Et utilisez-le avec:
LinkedList<Integer> a = createLinkedList(1, 2, 3);
for (Integer item : a) {
System.out.println(item);
}