If you just need to print the elements and that you worried about building a huge String just for printing it, you can still write a good old for loop that prints the elements one by one followed by the separator.
By that I mean that the new Java 8 features does not make these constructions deprecated.
For example, you could write a utility method if needed:
public static void printCollection(Collection<?> coll, String delimiter) {
int size = coll.size();
int i = 0;
for(Object elem : coll) {
System.out.print(elem);
if(++i < size) {
System.out.print(delimiter);
}
}
}
With Java 8, you could maybe make this sligthly more compact:
public static void printCollection(Collection<?> coll, String delimiter) {
//you can still avoid the map call and use two print statements in the forEach
coll.stream().limit(coll.size()-1).map(o -> o+delimiter).forEach(System.out::print);
coll.stream().skip(coll.size()-1).forEach(System.out::print);
}