Java foreach and hasNext

https://stackoverflow.com/questions/31151587/java-foreach-and-hasnext

  • 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<String> test = 
                new ArrayList<String>(Arrays.asList(
                        "Adam", "Bob", "Catherine", "Dylan"));

        StringBuilder sb = new StringBuilder();
        Iterator<String> 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<MyClass> 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

posted on 2017-06-08 10:10  冰霁  阅读(433)  评论(0)    收藏  举报

导航