假设我有一些 foreach
像这样的循环:
Set<String> names = new HashSet<>();
//some code
for (String name: names) {
//some code
}
有没有办法检查内部 foreach
实际名称是 Set
中的最后一个没有计数器?我没有在这里找到这样的问题。
原文由 mhery 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有一些 foreach
像这样的循环:
Set<String> names = new HashSet<>();
//some code
for (String name: names) {
//some code
}
有没有办法检查内部 foreach
实际名称是 Set
中的最后一个没有计数器?我没有在这里找到这样的问题。
原文由 mhery 发布,翻译遵循 CC BY-SA 4.0 许可协议
为了简单易懂,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 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
没有,看看 Java 的“for each”循环是如何工作的?
您必须更改循环以显式使用迭代器或 int 计数器。