2012-04-27 12 views
13

Bağlantılı bir listeye nasıl sahip olacağımı biliyorum ve girdilerle girdileri girmek için ekleme yöntemini kullanın. Ancak, girişlere giriş eklemek istemiyorum. Listede başlangıç ​​değerleri olan bir bağlantı listesi bildirmenin bir yolu var mı? Ben listede 1,0 & 2.0 yapmak istiyorsanızBir LinkedList'i içindeki girdiler/değerler ile nasıl başlatabilirim?

Mesela ben tek satırda yapabileceği bir şey var mı? şey gibi:

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

sizinle ne yapmak istediğinizi bağlıdır 'Map' veya anahtarlar ve değerler için ayrı listeler var. Bunları bir araya getirmek, bir yanda birbirinin yanına koymak gerçekten garip. –

+0

@LouisWasserman: OP, girişler anlamında girişler istediği gibi görünmüyor ... sadece listedeki öğeler. – ColinD

+0

Evet, bu yüzden listeleri ikiye ayırmayı önerdim. Tabi ki, listeyle ilgili "ilgili" eleman çiftlerini ekliyorsanız, bunları bir nesneye sarmak ya da iki listeye bölmek daha mantıklı olacaktır. Elbette OP'nin temel sorusu olan "Bir listeyi belirli öğelerle nasıl başlatabilirim" sorusuna bir çözüm var, fakat sorunun geri kalanı, OP'nin asıl sorununa belki de en iyi yaklaşım değil. –

cevap

43

Bunu bu şekilde yapabiliriz Belirtilen koleksiyonun öğelerini içeren bir liste, koleksiyonun yineleyicisi tarafından döndürüldükleri sırayla.

Bu sebeple bir LinkedList beyan ve beyanname anda değerlerle başlatmak için bu kurucu kullanabilirsiniz. Herhangi bir Collection<Double> türünün bir örneğini sağlayabilirsiniz. Yalnızca değerler kümesi ancak bir Collection nesne varsa

, o zaman List ve karşılığında bir sağlanan değerler kümesini dönüştürür statik asList() yöntemi vardır java.util.Arrays sınıfını kullanabilirsiniz. Eğer o zaman bir ondalık basamak ile değerler sağlamak zorunda List<Double> bir örneğini gerekiyorsa, aksi takdirde değerlerle List<Integer> bir örneğini elde edersiniz,

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

: Aşağıdaki örneğe bakın.

8

LinkedList tip Collection bir parametre kabul aşağıdaki kurucu vardır:

public LinkedList(Collection<? extends E> c) 

Bu yapıcı 'Yapıtlarının

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

Ayrıca

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

    return newList; 
} 

gibi yöntemini oluşturmak Ve bunu kullanabilirsiniz: o da bir kullanmak daha iyi bir fikir olabilir rağmen "girdileri"

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

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