2012-06-15 24 views
6

मैं जानना चाहता हूं कि लिंक की गई सूचियों की एक लिंक सूची कैसे बनाएं। साथ ही, यह मददगार होगा यदि पूर्वनिर्धारित LinkedList (जावा से कक्षा) और इसकी विधियों को परिभाषित करने के लिए और अन्य जोड़ने, प्राप्त करने, सूची बदलने के लिए उपयोग किया जाता है।जावा में लिंक्ड सूचियों की लिंक्ड सूची

+0

यह भी ठीक है, अगर मुझे मूलभूत विधियों के साथ उपयोगकर्ता द्वारा परिभाषित लिंक्डलिस्ट क्लास का कोड मिलता है। धन्यवाद –

+0

आपको इस फैशन में अपनी पोस्ट पर टिप्पणी करने की आवश्यकता नहीं है।आप किसी भी समय अपना मूल प्रश्न संपादित कर सकते हैं। – BlackVegetable

उत्तर

21

आप किसी अन्य वस्तु को सूची में किसी भी सूची में डाल सकते हैं।

LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>(); 

YourClass वस्तुओं की एक LinkedList की LinkedList रों है।

LinkedList<LinkedList<YourClass>> list = new LinkedList<>(); 

इस तरह के एक सूची से छेड़छाड़ की बहुत ही सरल उदाहरण: यह भी एक सरल तरीका since Java 7 में लिखा जा सकता है

इसके बाद आप एक एकल sublist जोड़ने प्रत्येक sublist बनाने के लिए, यहाँ की जरूरत है:

list.add(new LinkedList<YourClass>()); 

तब बनाई जाने वाली सामग्री वस्तुओं:

list.get(sublistIndex).add(new YourClass()); 

फिर आप इस तरह इस पर पुनरावृति कर सकते हैं (उप-सूचियों 'आइटम sublist द्वारा वर्गीकृत किया है):

for(LinkedList<YourClass> sublist : list) { 
    for(YourClass o : sublist) { 
     // your code here 
    } 
} 

आप सूचियों का इस सूची में विशिष्ट विधियों जोड़ना चाहते हैं, तो आप LinkedList का एक उपवर्ग बना सकते हैं (या List , या कोई अन्य List सबक्लास) या आप फ़ील्ड के रूप में सूचियों की सूची के साथ एक वर्ग बना सकते हैं और सूची में हेरफेर करने के लिए विधियां जोड़ सकते हैं।

+0

और सूची की इस सूची में फिर से कैसे करें ?? – roottraveller

+0

@roottraveller ने एक साधारण उदाहरण जोड़ा :) आप जो करना चाहते हैं उसके आधार पर कई तरीके किए जा सकते हैं। – Autar

0
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>(); 

घोषणा के रूप में। की सुविधा देता है के लिए (डिफ़ॉल्ट रूप से समाप्त करने के लिए) एक और लिंक्ड सूची को जोड़ने के लिए आप

yourList.add(new LinkedList<YourClass>()); 

एक तत्व को जोड़ने के लिए क्या करना होगा कहते हैं कि श्रृंखला में दूसरी लिंक्ड सूची:

yourList.get(1).add(new YourClass()); 
2

खैर मैं यह कर दिया है कोड और मैं इसे मिल गया है सही

  java.util.LinkedList mainlist = new java.util.LinkedList(); 

      java.util.LinkedList sublist1 = new java.util.LinkedList(); 
      sublist1.add(object1); 
      sublist1.add(object2); 
      sublist1.add(object3); 

      java.util.LinkedList sublist2=new java.util.LinkedList(); 
      sublist2.add(1); 
      sublist2.add(2); 

      mainlist.add(sublist1); 
      mainlist.add(sublist2); 

      // To retrieve the sublist1 from mainlist........... 
      java.util.LinkedList temp = (java.util.LinkedList)mainlist.get(0); 

यहाँ चर mainlistली है LinkedLists की nkedList और चर अस्थायी जैसे मूल्य पहली सूची संग्रहीत यानी sublist1 ..

1

तुम भी माध्यमिक सूचियों तक पहुंच को आसान बनाने में कर सकते हैं, शामिल हैं का उपयोग कर

final List<List<String>> lists = new LinkedList<List<String>>() { 
     @Override 
     public List<String> get(final int index) { 
      while (index >= size()) { 
       add(new LinkedList<>()); 
      } 
      return super.get(index); 
     } 
    }; 

इस कोड को स्वचालित रूप से बाहरी सूची में नए LinkedList रों कहते हैं। इस कोड के साथ आप बाद में आसानी से एकल मान जोड़ सकते हैं:

lists.get(2).add("Foo"); 
संबंधित मुद्दे