检测最后一次 foreach 循环迭代

新手上路,请多包涵

假设我有一些 foreach 像这样的循环:

 Set<String> names = new HashSet<>();
//some code
for (String name: names) {
     //some code
}

有没有办法检查内部 foreach 实际名称是 Set 中的最后一个没有计数器?我没有在这里找到这样的问题。

原文由 mhery 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

为了简单易懂,imo 会这样做:

 Set<String> names = new HashSet<>();
Iterator<String> iterator = names.iterator();
    while (iterator.hasNext()) {
        String name = iterator.next();
        //Do stuff
        if (!iterator.hasNext()) {
            //last name
        }
     }

此外,这取决于您要实现的目标。假设您正在实现用逗号分隔每个名称的常见用例,但不在末尾添加空逗号:

 Set<String> names = new HashSet<>();
names.add("Joao");
names.add("Pereira");

//if the result should be Joao, Pereira then something like this may work
String result = names.stream().collect(Collectors.joining(", "));

原文由 Joao Pereira 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题