Méthode la plus efficace pour renvoyer des éléments communs à partir de deux matrices de chaînes

En Java, ce qui est le moyen le plus efficace pour retourner les éléments communs à partir de deux Tableaux de Chaîne? Je peux le faire avec une paire de boucles for, mais qui ne semble pas être très efficace. Le mieux que je pouvais venir avec a été la conversion à un List puis en appliquant retainAllbasé sur mon examen d'un semblable question:

List<String> compareList = Arrays.asList(strArr1);
List<String> baseList = Arrays.asList(strArr2);
baseList.retainAll(compareList);

source d'informationauteur JW8