我正在研究一個HW問題,詢問:給出一個列表L和另一個列表P,其中包含按升序排序的整數。操作printLots(L,P)將打印位於由P指定的位置的L中的元素。例如,如果P = 1,3,4,6,則位置1,3,4和6中的元素在L被打印。寫入程序printLots(L,P)。爲什麼我的迭代器不從整個鏈表中返回元素?
我只允許使用Collection中的方法,這意味着我不能使用get(index)。
但是,我的代碼只返回列表P中的最後一個元素,不是全部。我不知道什麼是錯的。
這裏是我的代碼:
public static void printLots(Collection<Integer> L, Collection<Integer> P){
int size = P.size();
Iterator<Integer> iter = P.iterator();
int pos = 0;
while(iter.hasNext()){
pos = iter.next();
}
System.out.println(pos);
Integer [] arr = L.toArray(new Integer[size]);
System.out.println(arr[pos]);
}
public static void main(String[] args){
Collection<Integer> L = new ArrayList<>();
Collection<Integer> P = new ArrayList<>();
P.add(2);
P.add(3);
L.add(1);
L.add(3);
L.add(5);
L.add(6);
printLots(L,P);
}
檢查while循環,它只有在閱讀的完整列表,然後打印最後.. – AxelH
你也需要檢查,如果列表中包含的項目從列表拉指數 –