L'interface Collection est héritée de l'interface List et de l'interface Set. La classe ArrayList est la classe d'implémentation de l'interface List. cela peut être dynamique modifié, et la différence avec un tableau ordinaire est qu'il n'a pas de limite de taille fixe et que nous pouvons ajouter ou supprimer des éléments.
public class List { public static void main(String[] args) { var list = new ArrayList(); } }Ajoutez des données à la collection :
add()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); } }Effacez les données de la collection : clear()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.clear(); System.out.println(list); } }
Modifiez l'objet à l'index spécifié position
set ()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.set(2, "a"); System.out.println(list); } }SetHashSet
HashSet est implémenté sur la base de HashMap et est un ensemble qui n'autorise pas les éléments en double.
HashSet autorise les valeurs nulles.
HashSet n'est pas ordonné, c'est-à-dire que l'ordre d'insertion n'est pas enregistré.HashSet n'est pas thread-safe, si plusieurs threads tentent de modifier le HashSet en même temps, le résultat final n'est pas défini. Vous devez explicitement synchroniser l'accès simultané à un HashSet lorsque plusieurs threads y accèdent.
Créer un objet ArrayList :
public class Set { public static void main(String[] args) { var set = new HashSet<>(); } }
add()
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); } }
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.clear(); System.out.println(set); } }
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.remove("a"); System.out.println(set); } }La différence entre ArrayList et HashSet1.HashSet est non dupliqué et non ordonné. Unicité garantie La méthode égale des objets en double renvoie vrai et la méthode hashCode des objets en double. renvoie le même entier. HashSet est en fait un HashMap, mais vous ne pouvez utiliser la partie clé de ce HashMap que via l'interface Set2. ArrayList est répétable et ordonné : efficacité de requête élevée, faible efficacité d'ajout et de suppression, thread léger dangereux. Arraylist : pas rapide pour insérer et supprimer des données, mais plus rapide pour l'extraction aléatoire
Génériques
La programmation générique (programmation générique) est un style ou un paradigme de langages de programmation. Les génériques permettent aux programmeurs d'écrire du code dans un langage de programmation fortement typé en utilisant des types spécifiés ultérieurement et spécifiés en tant que paramètres au moment de l'instanciation. Différents langages de programmation, leurs compilateurs et environnements d'exécution prennent en charge différemment les génériques.
Généralement, les génériques sont utilisés lors de l'utilisation de collections. Les génériques consistent à ajouter une contrainte de type à la collection. Il peut s'agir d'une chaîne ou d'un objet. Les génériques ne prennent pas en charge le type de base int. Veuillez utiliser le type wrapper Integer
pour créer un générique :
List<String> list = new ArrayList<>();De cette façon, seul le type String peut être ajouté à cette collection.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!