Java utilise ArrayList au lieu de tableaux. Hmm Pour les personnes ayant beaucoup de connaissances
Je veux avoir une valeur sans duplication
List<String> list = new ArrayList<String>();
~ Traitement divers ~
String itemNo = get〇〇
if(list.contains(itemNo)){//Ne dupliquez pas les valeurs
list.add(itemNo);
}
Set est une collection sans éléments en double Equals est utilisé pour empêcher plus d'une instance de la même valeur.
Au fait, le nom Set est la version anglaise de la théorie des ensembles "set" (probablement). Puisque l'ensemble n'autorise pas les éléments dupliqués (ensemble de nombres naturels, etc.)
Je veux avoir une valeur sans duplication
Set<String> set = new HashSet<String>();
~ Traitement divers ~
String itemNo = get〇〇
//↓ La déduplication est égale()Pas besoin de décrire car set le fera en utilisant
//if(list.contains(itemNo)){//Ne dupliquez pas les valeurs
set.add(itemNo);
//}
Facile à écrire et facile à lire et facile à comprendre avec quelques descriptions En utilisant Set en premier lieu, il peut être clairement indiqué qu'il n'y a pas de duplication.
Mesure réelle
la mesure
List<Integer> list = new ArrayList<>();
Long start = System.nanoTime();
for(int i=0;i<100;i++){
for(int j=0;j<100;j++){
Integer num= i+j;
if(!list.contains(num)){
list.add(num);
}
}
}
Long end = System.nanoTime();
System.out.println("list time:"+ String.valueOf(end - start));
System.out.println(list);
Set<Integer> set = new HashSet<>();
Long start2 = System.nanoTime();
for(int i=0;i<100;i++){
for(int j=0;j<100;j++){
Integer num= i+j;
set.add(num);
}
}
Long end2 = System.nanoTime();
System.out.println("set time :"+String.valueOf(end2 - start2));
System.out.println(set);
list time:10748381 [0, 1, 2, 3, 4, 5 ~ Omis ~ set time :5471075 [0, 1, 2, 3, 4, 5 ~ Omis ~ // * Il se trouve être dans l'ordre décroissant, mais l'ordre n'est pas garanti.
La différence était presque le double. Je l'ai vérifié plusieurs fois, mais la différence est d'environ 1,2 à 3 fois, et Set est plus rapide. Cependant, ce que je veux dire ici, ce n'est pas de l'utiliser pour accélérer, Vous n'avez pas à vous soucier de la dégradation des performances et n'utilisez pas Set.
Recommended Posts