Bardziej wydajny sposób usuwania elementów z listy tablic

Opracowałem listę tablic podobną do tej

<code>ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("8");
list.add("8");
list.add("3");
list.add("4");
</code>

Teraz moje pytanie brzmi: czy chcę usunąć „8” z listy, w którą stronę jest lepsza?

pierwszy sposób:

<code>for(int i = 0; i < list.size(); i++) {
    if(list.get(i).equals("8")) {
        list.remove(i);
        i--;
    }
}
</code>

drugi sposób:

<code>Iterator<String> iterator = list.iterator();
    while(iterator.hasNext())
        if(iterator.next().equals("8"))
            iterator.remove();
</code>

Teraz proszę poinformować, który z nich jest bardziej wydajny i szybszy z punktu widzenia wydajności, a także czy istnieje jakikolwiek inny sposób, który jest podobny do wbudowanej funkcji, dzięki czemu możemy usunąć duplikaty bez powtarzania tak wiele.

questionAnswers(3)

yourAnswerToTheQuestion