Pour chaque vs Itérateur. Qui sera la meilleure option

Envisagez le scénario suivant.

List<String> list = new ArrayList<>();

Maintenant, j'ai ajouté le String les valeurs de cette liste.

J'ai utilisé de la manière suivante pour aller à chaque élément de la liste.

Option d'une utilisation for-each

for (String i : list) {
        System.out.println(i);
    } 

Option deux - utilisation Iterator

Iterator it=list.iterator();
while (it.hasNext()){
   System.out.println(it.next());
}

Je veux juste savoir est-il un avantage de performance si j'utilise for-each au lieu de Iterator. Et aussi est-ce une mauvaise pratique à utiliser Itérateur maintenant un jours en Java?