java - 检测最后一次 foreach 循环迭代

标签 java algorithm collections

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

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

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

最佳答案

为了简单易懂,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(", "));

关于java - 检测最后一次 foreach 循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41591107/

相关文章:

java - 查找两个 2 TSV 文件之间的唯一元素

java - 关于HashMap的一些疑惑

java - scala中的Covariant Typeparameter需要在java接口(interface)中不变

java - 如果我在对象的 Finalize 方法中保存对对象的引用,该对象是否会被 GC 回收?

algorithm - 用相等的 XOR 划分数组

Javascript:打印字符串的排列超出堆栈内存?

java - openssl 的 "aes-256-cfb"的 Java 名称是什么?

java - 打印为 Pdf...仅最后 2 页

algorithm - 在 O(n) 时间内计算 2^n

java - 下面的程序将如何工作?