簡體   English   中英

Java中鏈接列表的鏈接列表

[英]Linked List of Linked Lists in Java

我想知道如何創建鏈表的鏈表。 此外,如果預定義的LinkedList (來自Java的類)及其方法用於定義和其他add,get,listIterating操作,將會很有幫助。

您可以將任何對象放入列表中,包括另一個列表。

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

YourClass對象的LinkedListLinkedList 它也可以從Java 7開始以簡化的方式編寫:

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

操作這樣一個列表的非常簡單的例子:

然后,您需要創建每個子列表,這里添加一個子列表:

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

然后創建內容對象:

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

然后,您可以像這樣迭代它(子列表的項目按子列表分組):

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

如果要將特定方法添加到此列表列表中,可以創建LinkedList (或List ,或任何其他List子類)的子類,或者可以創建一個包含列表列表作為字段的類,並在其中添加方法以進行操作列表。

好吧,我已經完成了這個代碼,我做對了

          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);

這里變量mainlistLinkedLists的LinkedList ,變量temp包含第一個列表存儲的值,即sublist1 ..

您甚至可以簡化對輔助列表的訪問,例如使用

    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");
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();

作為宣言。 要添加另一個鏈接列表(默認情況下結束),您可以這樣做

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

要添加一個元素,讓我們說系列中的第二個鏈表:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM