假设我有这样的foreach
循环:
Setnames = new HashSet<>(); //some code for (String name: names) { //some code }
有没有办法检查内部foreach
实际名称是Set
没有计数器的最后一个?
(对不起,如果这是一个重复的问题,我在这里找不到这样的问题)
为了简单和易懂,imo会做:
Setnames = new HashSet<>(); Iterator iterator = names.iterator(); while (iterator.hasNext()) { String name = iterator.next(); //Do stuff if (!iterator.hasNext()) { //last name } }
此外,这取决于你想要达到的目标.假设您正在实现通过昏迷分隔每个名称的常见用例,但最后不要添加空昏迷:
Setnames = 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'如何工作?
您必须更改循环以显式使用迭代器或使用int计数器.
其他的回答是完全足够的,只需为给定的问题添加此解决方案.
Setnames = new HashSet<>(); //some code int i = 0; for (String name: names) { if(i++ == names.size() - 1){ // Last iteration } //some code }