我有一個 LinkedList,在遍歷它時需要知道當前、上一個和下一個項目。我想沒有辦法用“for each”表示法來做到這一點,所以我轉(zhuǎn)向了列出迭代器。結(jié)果證明它們相當混亂。無論如何,我有一個似乎可以跟蹤當前、上一個和下一個的實現(xiàn)。 LinkedList<String> list = new LinkedList<String>(); list.add("p"); list.add("r"); list.add("r"); list.add("q"); list.add("p"); list.add("p"); list.add("r"); String prev = ""; String next = ""; String curr = ""; Boolean firstRun = true; ListIterator<String> li = list.listIterator(); while (li.hasNext()) { curr = li.next(); if (firstRun) { prev = "-"; firstRun = false; } else if (li.hasPrevious()) { prev = li.previous(); li.next(); if (li.hasNext()) curr = li.next(); } else prev = "-"; if (li.hasNext()) { next = li.next(); li.previous(); if (li.hasPrevious()) curr = li.previous(); } else next = "-"; System.out.println(curr + prev + next); }這輸出p-rrprrrqqrppqppprrp-我想知道是否有更簡單的方法來做到這一點。代碼很混亂,而且不直觀,至少我是如何解釋它的。編輯:我已經(jīng)抽象了我試圖解決的真實實際情況。我有一個對象列表,而不是字符串,例如:public foo(String name, String data) { this.name = name; this.data = data}如果 foo.name 是“單獨的”,即 next 和 prev 項目不同,我想跟蹤 foo.data
LinkedList - 遍歷時獲取當前和上一個
慕碼人8056858
2021-07-05 16:03:43