[英]go through an array of linked lists
我想創建一個指向鏈接列表的指針數組,然后遍歷每個列表。 要創建它,我可以簡單地創建所需的任何列表,然后執行類似的操作
LinkedList array[] = new LinkedList[length];
然后只是設置一個循環以將數組中的每個值設置為指向列表之一?
設置完所有清單后,我將如何瀏覽? 我以為是
while(array[x].hasNext()){
//do stuff
x++;
}
您已經混合了Java數組對象和收集框架的List
api。 您可以通過以下兩種方法來完成自己想做的事情:
使用數組(不鼓勵使用-參見此線程 ):
LinkedList array[] = new LinkedList[length]; ... for (int i = 0; i < array.length; ++i) { LinkedList list = array[i]; // do stuff with list }
使用List
:
List<LinkedList> array = new ArrayList<LinkedList>(); ... for (Iterator<LinkedList> iter = array.iterator(); iter.hasNext(); ) { LinkedList list = iter.next(); // do stuff with list }
在這兩種情況下,您都可以受益於使用增強的for
循環 :
for (LinkedList list : array) {
// do stuff with list
}
這適用於基於數組的版本或基於List
的版本。
PS您不應使用原始的LinkedList
類型。 相反,您應該將LinkedList
的泛型類型參數綁定到特定的元素類型(即使它是Object
)。 例如:
List<LinkedList<String>> array = new ArrayList<LinkedList<String>>();
為了舊代碼,該語言允許使用原始類型,但是新代碼永遠不要使用它們。 但是,上面的第一個選項將不起作用-您將不得不使用第二種方法。
您的while循環不正確:
只是做這樣的事情!
for (LinkedList list : array) {
for (Item object : list) {
// Do something here with the item
}
}
順便說一句,您不應該在沒有類型的情況下使用LinkedList,請使用以下方法之一
LinkedList<String> or
LinkedList<WhateverObjectYouLike> or
LinkedList<? extends whatEverObjectYouLike>
因此,假設您要創建一個由10個列表組成的數組,並且每個列表都應包含字符串。
LinkedList<String> array[] = new LinkedList<String>[10];
for (int i=0; i<10; i++) {
array[i] = new LinkedList<String>();
}
// Add some strings to each list, as you like
...
// Print all added Strings:
for (LinkedList<String> list : array) {
for (String item : list) {
System.out.println(item);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.