Maison >Java >javaDidacticiel >Définition et méthodes communes de l'interface Collection
1. Définition de l'interface Collection
public interfaceCollection1a4db2c2c2313771e5742b6debf617a1extends iterable1a4db2c2c2313771e5742b6debf617a1
À partir de la définition de l'interface, on peut constater que ceci L'interface utilise une définition de type générique, le type d'opération spécifique doit être spécifié pendant l'opération. Cela peut garantir la sécurité des opérations sur les ensembles de classes et éviter les exceptions ClassCastException.
Collection est l'interface de collection la plus basique. Une collection représente un groupe d'objets, c'est-à-dire les éléments de la collection. Les classes fournies par Java JDK sont toutes des « sous-interfaces » héritées de Collection, telles que List et Set.
Toutes les classes qui implémentent l'interface Collection doivent fournir deux constructeurs standards :
1. Le constructeur sans paramètre est utilisé pour créer une Collection vide
2 .Le constructeur avec un. Le paramètre Collection est utilisé pour créer une nouvelle collection contenant les mêmes éléments qu’une collection traditionnelle. Ce constructeur permet à l'utilisateur de copier une collection.
Revue : Tableaux >
[] x= [5]; Student [] list= Student[5];Code direct : Sortie :
Un résumé de méthodes courantes de collecte :
Exemples de code (faites attention aux résultats de la comparaison)
import java.util.ArrayList; import java.util.Collection; public class CollT { public static void main(String[] args) { Collection<String> a = new ArrayList<String>(); Collection<String> c = new ArrayList<String>(); Collection<String> d = new ArrayList<String>(); Collection<String> e = new ArrayList<String>(); Collection<String> f = new ArrayList<String>(); // Integer中的i要大写 14 ArrayList<Integer> h = new ArrayList<Integer>(); // h和g做比较 15 16 h.add(4); 17 h.add(33); 18 h.add(66); 19 h.add(77); 20 h.add(345); 21 h.add(44); 22 // h.add("aaa");—报错 23 // h.add(ff);—报错 24 25 // Object[] g={"aaa",4,33,66,ff,77,88,345,44,"dd","cfc"}; 26 27 a.add("白"); 28 a.add("日"); 29 a.add("依"); 30 a.add("山"); 31 a.add("尽"); 32 33 c.add("黃"); 34 c.add("河"); 35 36 d.add("白"); 37 d.add("日"); 38 d.add("依"); 39 d.add("山"); 40 d.add("尽"); 41 42 e.add("山"); 43 e.add("尽"); 44 45 f.add("5"); 46 // f.add(6); 47 48 Object[] g = { "aaa", 4, 33, 66, 77, 88, 345, 44, "dd", "cfc" }; 49 50 System.out.println(a.isEmpty()); 51 System.out.println(a.add("白")); 52 System.out.println(a.addAll(c)); 53 System.out.println(a); 54 55 System.out.println(a.contains("地")); 56 System.out.println(a.containsAll(c));// true 57 System.out.println(a.equals(c)); 58 System.out.println(c); 59 60 a.clear(); 61 System.out.println(a); 62 System.out.println(a.containsAll(d)); 63 64 d.remove("白"); 65 System.out.println(d); 66 d.remove("wang");// 没有反应 67 System.out.println(d); 68 69 System.out.println(a.hashCode());// a此时已经被晴空了 70 // 第一次时,我竟然是这么写的:a.hashCode(); 71 System.out.println(c.hashCode()); 72 System.out.println(d.hashCode()); 73 74 a.add("浪花滚滚"); 75 System.out.println(a); 76 77 System.out.println(e.removeAll(d)); 78 System.out.println(d.removeAll(e)); 79 System.out.println(d); 80 System.out.println(e); 81 System.out.println(e.size()); 82 // 我之前写成e.size(); 83 System.out.println(d.size()); 84 85 System.out.println(a.toArray());// 哈哈哈注意 86 System.out.println(f.toArray());// 哈哈哈注意 87 88 System.out.println("=========分割线========="); 89 90 // System.out.println(g); 91 for (int i = 0; i < g.length; i++) 92 System.out.println(g); 93 94 System.out.println("**********分割线*********"); 95 96 // 获取数组 97 Integer[] array = h.toArray(new Integer[h.size()]); 98 // 遍历数组 99 /**100 * for(int i=0;i<h.length;i++){ System.out.println(h[i]+""); length101 * 报错:cannot be resolved or is not a field102 */103 for (int element : array) {104 System.out.println(element);// 和下面的一起打印,结果竟然!!!105 106 System.out.print(element + "\t");// 复习一下而已107 108 }109 110 }111 112 }Exemple 1 : (Comparez principalement 1. S'il y a du contenu commenté ; 2. vrai et false et position d'impression ; 3. Pensez à l'ordre d'exécution et à la comparaison du type de chaîne)
/上面示例的打印结果!! 2 false 3 true 4 true 5 [白, 日, 依, 山, 尽, 白, 黃, 河] false 7 true 8 false 9 [黃, 河]10 []11 false12 [日, 依, 山, 尽]13 [日, 依, 山, 尽]14 115 128872116 79836512517 [浪花滚滚]18 true19 false20 [日, 依, 山, 尽]21 []22 023 424 [Ljava.lang.Object;@16925b025 [Ljava.lang.Object;@297ffb26 =========分割线=========27 [Ljava.lang.Object;@914f6a28 [Ljava.lang.Object;@914f6a29 [Ljava.lang.Object;@914f6a30 [Ljava.lang.Object;@914f6a31 [Ljava.lang.Object;@914f6a32 [Ljava.lang.Object;@914f6a33 [Ljava.lang.Object;@914f6a34 [Ljava.lang.Object;@914f6a35 [Ljava.lang.Object;@914f6a36 [Ljava.lang.Object;@914f6a37 **********分割线*********38 439 4 3340 33 6641 66 7742 77 34543 345 4444 44
boolean add(E e) //注意它的参数类型boolean addAll(Collection216930c0ab3d232ff5eb2d5ba8cef959 c) 将指定 collection 中的所有元素都添加到此 collection 中boolean remove(Object o)boolean contains(Object o) //判断集合中指定的元素是否存在boolean containsAll()// 如果此 collection 包含指定 collection 中的所有元素, 则返回 true。 boolean removeAll(Collection6b3d0130bba23ae47fe2b8e8cddf0195 c)boolean retainAll(Collection6b3d0130bba23ae47fe2b8e8cddf0195 c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)(取交集) clear() size() toArray() boolean isEmpty() Iterator1a4db2c2c2313771e5742b6debf617a1 iterator() 返回在此 collection 的元素上进行迭代的迭代器。Exemple 2 :
import java.util.ArrayList; 2 import java.util.Collection; 3 4 public class CollT { 5 public static void main(String[] args) { 6 7 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 9 10 a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 a.remove("4");17 18 b.add("白");19 b.add("日");20 b.add("依");21 b.add("山");22 b.add("尽");23 24 System.out.println(b.equals(a));25 26 System.out.println(a);27 System.out.println(b);28 29 System.out.println(a.hashCode());30 System.out.println(b.hashCode());31 32 System.out.println(a.removeAll(b));33 34 System.out.println(a);35 System.out.println("===================");36 37 Object[] c = a.toArray();38 String s = null;39 for (int i = 0; i < c.length; i++) {40 s = (String) c[i];41 System.out.println(s);42 } } }
Exemple trois :
import java.util.ArrayList; 2 import java.util.Collection; public class CollT { 5 public static void main(String[] args) { 6 7 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 9 10 a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 //a.remove("4");17 18 b.add("白");19 b.add("日");20 b.add("依");21 b.add("山");22 b.add("尽");23 24 System.out.println(b.equals(a));25 26 System.out.println(a);27 System.out.println(b);28 29 System.out.println(a.hashCode());30 System.out.println(b.hashCode());31 32 //System.out.println(a.removeAll(b));33 34 System.out.println(a);35 System.out.println("===================");36 37 Object[] c = a.toArray();38 String s = null;39 for (int i = 0; i < c.length; i++) {40 s = (String) c[i];41 System.out.println(s);42 } } }
Exemple quatre :
import java.util.ArrayList; import java.util.Collection; 3 4 public class CollT { 5 public static void main(String[] args) { 6 7 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 9 10 a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 a.remove("4");17 18 b.add("黃");19 b.add("河");20 b.add("入");21 b.add("海");22 b.add("流");23 24 System.out.println(b.equals(a));25 26 System.out.println(a);27 System.out.println(b);28 29 System.out.println(a.hashCode());30 System.out.println(b.hashCode());31 32 System.out.println(a.removeAll(b));33 34 System.out.println(a);35 System.out.println("===================");36 37 Object[] c = a.toArray();38 String s = null;39 for (int i = 0; i < c.length; i++) {40 s = (String) c[i];41 System.out.println(s);42 } } }
Exemple 5 :
import java.util.ArrayList; import java.util.Collection; public class CollT { 5 public static void main(String[] args) { 6 7 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 9 10 a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 //a.remove("4");17 18 b.add("黃");19 b.add("河");20 b.add("入");21 b.add("海");22 b.add("流");23 24 System.out.println(b.equals(a));25 26 System.out.println(a);27 System.out.println(b);28 29 System.out.println(a.hashCode());30 System.out.println(b.hashCode());31 32 //System.out.println(a.removeAll(b));33 34 System.out.println(a);35 System.out.println("===================");36 37 Object[] c = a.toArray();38 String s = null;39 for (int i = 0; i < c.length; i++) {40 s = (String) c[i];41 System.out.println(s);42 } } }
Exemple 6 :
import java.util.ArrayList; import java.util.Collection; 3 4 public class CollT { 5 public static void main(String[] args) { Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 //a.remove("4");17 18 b.add("黃");19 b.add("河");20 b.add("入");21 System.out.println(b.equals(a));24 25 System.out.println(a);26 System.out.println(b);27 28 System.out.println(a.hashCode());29 System.out.println(b.hashCode());30 31 //System.out.println(a.removeAll(b));32 33 System.out.println(a);34 System.out.println("===================");35 36 Object[] c = a.toArray();37 String s = null;38 for (int i = 0; i < c.length; i++) {39 s = (String) c[i];40 System.out.println(s);41 } } }
2. méthodes de List et set
Les classes d'implémentation de List incluent : LinkedList, Vector, ArrayList
Remarque :
import java.util.ArrayList; import java.util.Collection; public class CollT { 5 public static void main(String[] args) { 6 7 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 a = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 8 Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 b = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4(); 9 10 a.add("白");11 a.add("日");12 a.add("依");13 a.add("山");14 a.add("尽");15 16 a.remove("4");17 18 b.add("黃");19 b.add("河");20 b.add("入"); System.out.println(b.equals(a));24 25 System.out.println(a);26 System.out.println(b);27 28 System.out.println(a.hashCode());29 System.out.println(b.hashCode());30 31 System.out.println(a.removeAll(b));32 33 System.out.println(a);34 System.out.println("===================");35 36 Object[] c = a.toArray();37 String s = null;38 for (int i = 0; i < c.length; i++) {39 s = (String) c[i];40 System.out.println(s); } } }L'interface de liste List, héritée de Collection, est accessible dans ordre d'indexation, et il existe une collection indexée.
a la fonction d'une liste, et les éléments sont répertoriés dans l'ordre dans lequel ils sont ajoutés.
La Collection, la Liste, l'Ensemble et la Carte ici sont toutes des interfaces (Interface), et non des implémentations de classe spécifiques. List list = new ArrayList(); C'est l'instruction que nous utilisons souvent pour créer une nouvelle List Ici, List est l'interface et ArrayList est la classe spécifique.
ListeL'interface List étend Collection et déclare les caractéristiques d'une collection qui stocke une séquence d'éléments. En utilisant un indice de base zéro, les éléments peuvent être insérés et accessibles en fonction de leur position dans la liste. Une liste peut contenir des éléments répétés. En plus des méthodes définies par Collection, List définit ses propres méthodes. Notez encore une fois que même si une classe ne peut pas être modifiée,
Une ClassCastException sera générée lorsqu'un objet est incompatible avec un autre, par exemple lorsqu'une tentative est faite d'ajouter un objet incompatible à une classe.
Pour les méthodes add() et addAll() définies par Collection, List ajoute les méthodes add(int, Object) et addAll(int, Collection). Ces méthodes insèrent des éléments à l'index spécifié.
La sémantique de add(Object) et addAll(Collection) définie par Collection est également modifiée par List afin qu'ils ajoutent des éléments à la fin de la liste.
Pour obtenir l'objet stocké à l'emplacement spécifié, vous pouvez appeler la méthode get() avec l'indice de l'objet. Pour attribuer une valeur à un élément de la table de classe, vous pouvez appeler la méthode set() et spécifier l'indice de l'objet en cours de modification.
Appelez indexOf() ou lastIndexOf() pour obtenir l'index d'un objet.
En appelant la méthode subList(), vous pouvez obtenir une sous-liste de la liste qui spécifie l'indice de début et l'indice de fin. Cette méthode rend le traitement des listes très pratique.
SetL'interface de collection set définit une collection. Il étend Collection et décrit les fonctionnalités des collections qui ne permettent pas la copie d'éléments. Par conséquent, si vous essayez d’ajouter un élément copié à la collection, la méthode add() renverra false. Il ne définit lui-même aucune méthode supplémentaire.
Résumé :
Caractéristiques de la collection List
1) Les éléments sont ordonnés (accessibles par index)2) Les éléments peuvent être répétés et peuvent stocker plusieurs valeurs nulles
Caractéristiques de Set :
1) Les éléments ne sont pas ordonnés (ne sont pas accessibles par index)
2) Les éléments ne peuvent pas être répété, il ne peut y avoir qu'une seule valeur nulle
Exemple de code :
1 /*List集合的特有特性 * *public interface List1a4db2c2c2313771e5742b6debf617a1extends Collection1a4db2c2c2313771e5742b6debf617a1 4 *-- add(int index, E element) 在列表的指定位置插入指定元素 5 *-- addAll(int index, Collection216930c0ab3d232ff5eb2d5ba8cef959 c) *-- E get(int index) //返回列表中指定位置的元素。 7 *-- int indexOf(Object o) // 返回此列表中第一次出现的指定元素的索引 8 *-- listIterator() *-- e set(int index, E element) // 用指定元素替换列表中指定位置的元素10 *-- void remove(int position) 移除指定位置的元素11 *-- List1a4db2c2c2313771e5742b6debf617a1 subList(int fromIndex, int toIndex ) 类似substring()12 */13 import java.util.ArrayList;14 15 class CollT {16 public static void main(String[] args) {17 ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4 list = new ArrayListf7e83be87db5cd2d9a8a0b8117b38cd4();18 list.add("Java"); // 下標是019 list.add("Class"); // 下標是120 list.add("Array"); // 下標是221 list.add("Collection"); // 下標是322 list.add("List"); // 下標是423 list.add("Set"); // 下標是524 System.out.println(list.subList(0, 3));// 注意不包含下標是3的25 } }
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!