Enregistré parce que j'ai eu du mal dans l'introduction au contrôle des compétences de paiza.
Scanner sc = new Scanner(System.in);
List<String> words = new ArrayList<>();
while(sc.hasNext()) {
String s = sc.nextLine();
if (words.contains (s)) {// Vérifier s'il est déjà dans la liste et le supprimer s'il existe words.remove(s); } words.add (0, s); // Ajoute la chaîne saisie au début de la liste }
for(String word : words) {
System.out.println(word);
}
-Si vous augmentez ou diminuez la valeur de ArrayList avec remove () ou add (), toutes les valeurs stockées doivent être décalées, donc le traitement prend du temps. -Since contains () of ArrayList recherche également toutes les valeurs de la liste, plus il y a de valeurs stockées, plus le temps de traitement est long.
-Utilisez HashSet pour rechercher des chaînes de caractères. → Les éléments peuvent être convertis en valeurs de hachage et utilisés pour la recherche, et les valeurs peuvent être trouvées rapidement.
Ajoutez toutes les chaînes entrées à la liste et utilisez HashSet pour masquer les doublons. (Je ne le supprime pas vraiment, je suppose qu'il n'y était pas)
Scanner sc = new Scanner(System.in);
List<String> words = new ArrayList<>();
while(sc.hasNext()) {
String s = sc.nextLine();
words.add(s);
}
Collections.reverse (words); // Inverse la liste en sortie de la liste nouvellement entrée
Set
for(String word : words) {
if (! usedWords.contains (word)) {// Détermine s'il a déjà été ajouté à usedWord (duplicate) et affiche si non System.out.println(word); } usedWords.add(word); }
Recommended Posts