我有一个 LinkedList,在遍历它时需要知道当前、上一个和下一个项目。我想没有办法用“for each”表示法来做到这一点,所以我转向了列出迭代器。结果证明它们相当混乱。无论如何,我有一个似乎可以跟踪当前、上一个和下一个的实现。 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-我想知道是否有更简单的方法来做到这一点。代码很混乱,而且不直观,至少我是如何解释它的。编辑:我已经抽象了我试图解决的真实实际情况。我有一个对象列表,而不是字符串,例如:public foo(String name, String data) { this.name = name; this.data = data}如果 foo.name 是“单独的”,即 next 和 prev 项目不同,我想跟踪 foo.data
添加回答
举报
0/150
提交
取消