Just use the iterator alone, instead of the 'for-each' loop
Append a , only when the iterator has a next element
Example
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class QuickTester {
public static void main(String[] args) {
ArrayList test =
new ArrayList(Arrays.asList(
"Adam", "Bob", "Catherine", "Dylan"));
StringBuilder sb = new StringBuilder();
Iterator stringIterator = test.iterator();
while(stringIterator.hasNext()) {
sb.append(stringIterator.next());
if(stringIterator.hasNext()) {
sb.append(", ");
}
}
System.out.println(sb.toString());
}
}
Output
Adam, Bob, Catherine, Dylan
With Java8 you can use String.Join() with ArrayList of Objects.
public static void main(String[] args) throws Exception {
ArrayList test = new ArrayList();
test.add(new MyClass("Adam", 12));
test.add(new MyClass("Bob", 17));
test.add(new MyClass("Catherine", 19));
test.add(new MyClass("Dylan", 22));
System.out.println(String.join(", ", test.stream().map(mc -> mc.Name).collect(Collectors.toList())));
}
public static class MyClass {
public String Name;
public int Age;
public MyClass(String n, int a) {
this.Name = n;
this.Age = a;
}
}
Results:
Adam, Bob, Catherine, Dylan