为了账号安全,请及时绑定邮箱和手机立即绑定

LinkedList - 遍历时获取当前和上一个

LinkedList - 遍历时获取当前和上一个

慕码人8056858 2021-07-05 16:03:43
我有一个 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
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 352 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信