Concept:
La bibliothèque de classes Java nous fournit un grand nombre de "classes de collection". Ces classes de collection utilisent différentes "structures de données" pour stocker. Différentes structures de données conduiront à différentes performances d'ajout, de suppression, de modification et de vérification.
Structure de données commune :
1). Tableau; augmentation rapide de la requête et suppression lente
2). Liste liée; ajout et suppression de la requête rapide lente
3). Pile; dernier entré premier sorti, pile pile de bombes
4). File d'attente; premier entré premier sorti
5). Table de hachage; Les requêtes et les ajouts et suppressions sont rapides
6).
Collection
Remarque: ①, la collection ne peut stocker que des objets. Par exemple, si vous stockez une donnée de type int 1 et la placez dans une collection, elle est automatiquement convertie en classe Integer et stockée. Chaque type de base en Java a un type de référence correspondant.
② La collection stocke des références à plusieurs objets et les objets eux-mêmes sont toujours placés dans la mémoire de tas.
③, la collection peut stocker différents types, un nombre illimité de types de données.
Insérez les connaissances:
classe d'emballage:
type de données de base -----
octet de type d'emballage ----- octet
booléen ----- booléen
court ----- caractère court
----- caractère
int ---- -Entier
long -----
Flottant long ----- Flottant
double ----- Double
A) Collection collection : collection à une colonne
| –Liste collection: 1. Ordonné; 2. Peut stocker des éléments en double; peut Éléments d'opération d'indexation
| | - ArrayList (sous-classe): implémentation du tableau
| - LinkedList (sous-classe): implémentation de la liste liée
| - Set collection: 1. Unordered; 2. Impossible de stocker les éléments en double;
| - HashSet (subclass): Table de hachage
| –LinkedHashSet (sous-classe): liste liée, table de hachage. Commandé
B). La collection Carte : deux ensembles de colonnes (paires clé-valeur)
| –HashMap (sous-classe): implémentation de table de hachage;
| –LinkedHashMap (sous-classe): liste liée, implémentation de table de hachage
Méthodes courantes dans Collection_Collection :
1). Les méthodes déclarées dans Collection seront implémentées dans la collection List and Set;
2). Plusieurs méthodes couramment utilisées:
add:
public boolean add (E e): put the given L'objet est ajouté à la collection actuelle, la valeur de retour: pour ArrayList renvoie toujours true; pour Set, uniquement lors du stockage d'éléments en double, il renvoie false, échec de stockage;
Supprimer:
public void clear (): efface tous les éléments de la collection.
public boolean remove (E e): supprime l'objet donné de la collection actuelle. Valeur de retour: true si la suppression est réussie; sinon: false Remarque: S'il y a plusieurs "éléments en double" dans la collection, seul le premier sera supprimé. (La suppression dépend de la comparaison de: equals ())
Jugement:
public booléen contient (Object obj): juge si la collection actuelle contient l'objet donné. Remarque: La recherche dépend de la comparaison d'equals ();
public boolean isEmpty (): détermine si la collection actuelle est vide.
Get:
public int size (): renvoie le nombre d'éléments dans la collection.
public Object [] toArray (): stocke les éléments de la collection dans un tableau. Convertissez la collection en tableau.
public Iterator iterator (): Récupère un "itérateur" pour parcourir la collection.
Connaissances supplémentaires
Vous ne pouvez pas ajouter ou supprimer l'objet d'origine à l'aide d'un itérateur, sinon le programme signalera une erreur (ConcurrentModificationException)
//定义一个list集合
ArrayList<String> list=new ArrayList<>();
Iterator it=list.iterator();
while(it.hasNext()){ //获取浮标 判断是否有下一个
System.out.print(it.next());//输出
}
Connaissances supplémentaires:
Enhanced for:
est une instruction de boucle utilisée pour parcourir les tableaux et les collections. Syntaxiquement, il est plus concis qu'une boucle for normale.
//快捷键 arr.iter
//注意增强for底层是迭代器不可以执行增删操作
int [] arr={2,14,1,3,22,11,4};
for (int i : arr) {
System.out.println(i);
}
Collection de listes:
1) .Il hérite de l'interface Collection. De plus, il a ajouté quelques méthodes.
2). Fonctionnalités de collection de listes: ordonnées; peut stocker des éléments en double; peut faire fonctionner des éléments via "index";
3). Nouvelle méthode couramment utilisée:
ajouter un ajout public nul (index int, élément E): spécifiera L'élément est ajouté à la position spécifiée dans la collection.
Modification: ensemble E public (index int, élément E) Remplacez l'élément à la position spécifiée dans l'ensemble par l'élément spécifié et renvoyez l'élément avant la mise à jour.
Delete: public E remove (int index): supprime l'élément à la position spécifiée dans la liste et renvoie l'élément qui a été supprimé.
Get: public E get (int index): renvoie l'élément à la position spécifiée dans la collection.
ArrayList (list collection subclass):
implémentation de tableau, pas de méthode unique.
LinkedList (list collection subclass):
implémentation de liste liée, il existe des méthodes uniques. Utilisé pour simuler les opérations de pile et de file d'attente
collection de sets
Caractéristiques
1. Non ordonné (fait référence à un ordre différent de celui de l'ajout) 2. Ne peut pas stocker les éléments en double 3. Ne peut pas être consulté par index.
hashSet (subclass):
Fonctionnalités: requête d'ajout et de suppression plus rapide
Remarque: Lors de l'ajout d'un élément à une certaine position, utilisez la méthode hashCode () pour vérifier si la position d'index existe, puis utilisez la méthode equse () pour déterminer si les éléments sont identiques.
HashSet<String> set = new HashSet<>();
set.add("张三");
set.add("张三");//错误 不可存储重复 输出只会有一个“张三”
set.add("李四");
for (String s : set) {
System.out.println(s);// 李四 张三
}
set.clear();//清空集合
set.iterator();//迭代器 作用遍历
LinkedHashSet (sous-classe):
Caractéristiques: C'est un cas particulier de Set, liste liée, structure de table de hachage. Ordonné
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("张三");
linkedHashSet.add("李四");
linkedHashSet.add("王五");
for (String s : linkedHashSet) {
System.out.println(s);//张三 李四 王五
}
Collection de cartes
Caractéristiques: une collection à deux colonnes stocke deux objets: paire clé-valeur
HashMap (sous-classe): implémentation de la table de hachage;
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("1","张三");//put() 添加元素的方法 “1”是键,“张三”是值
hashMap.put("2","李四");
hashMap.put("3","王五");
hashMap.get("1");//get() 获取指定索引位置的值的方法
hashMap.remove("2");//remove() 移除指定位置的键和值
Il existe deux façons de traverser:
Set<String> keySet = hashMap.keySet();//获取键的集合
for (String s : keySet) {
System.out.println(hashMap.get(s));
}
}
//获取集合中的每一个键值对对象的集合遍历
Set<Map.Entry<String, String>> entrySet = hashMap.entrySet();
for (Map.Entry<String, String> s : entrySet) {
String key=s.getKey();
String value=s.getValue();
System.out.println(key+":"+value);
}
LinkedHashMap (sous-classe): liste chaînée, implémentation de table de hachage
Caractéristiques: Ordonné
Aucune méthode spéciale, similaire à la méthode de traversée hashMap.