Maison > Java > javaDidacticiel > le corps du texte

Définition et méthodes communes de l'interface Collection

零下一度
Libérer: 2017-06-26 09:42:29
original
7589 Les gens l'ont consulté

1. Définition de l'interface Collection

public interfaceCollectionextends iterable

À 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];
Copier après la connexion
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 
 }
Copier après la connexion
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
Copier après la connexion

boolean add(E e) //注意它的参数类型boolean addAll(Collection<? extends E> c) 
将指定 collection 中的所有元素都添加到此 
collection 中boolean remove(Object o)boolean contains(Object o) 
//判断集合中指定的元素是否存在boolean containsAll()//   
如果此 collection 包含指定 collection 中的所有元素,
则返回 true。 boolean removeAll(Collection<?> c)boolean retainAll(Collection<?> c) 
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)(取交集)
            clear()
            size()
            toArray() boolean isEmpty()
            Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。
Copier après la connexion
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         
Collection<String> a = new ArrayList<String>(); 8         
Collection<String> b = new ArrayList<String>(); 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         
}   
}
}
Copier après la connexion

Exemple trois :


 import java.util.ArrayList; 2 
 import java.util.Collection;
 public class CollT { 5     
 public static void main(String[] args) { 6  7         
 Collection<String> a = new ArrayList<String>(); 8         
 Collection<String> b = new ArrayList<String>(); 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         }
 }
 }
Copier après la connexion

Exemple quatre :


import java.util.ArrayList;
import java.util.Collection; 3  4 
public class CollT { 5     
public static void main(String[] args) { 6  7         
Collection<String> a = new ArrayList<String>(); 8         
Collection<String> b = new ArrayList<String>(); 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         
 }
 }
 }
Copier après la connexion

Exemple 5 :


import java.util.ArrayList; 
import java.util.Collection;
public class CollT { 5     
public static void main(String[] args) { 6  7         
Collection<String> a = new ArrayList<String>(); 8         
Collection<String> b = new ArrayList<String>(); 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         }
}
}
Copier après la connexion

Exemple 6 :


import java.util.ArrayList;
import java.util.Collection; 3  4 
public class CollT { 5     
public static void main(String[] args) 
{ 
Collection<String> a = new ArrayList<String>(); 8         
Collection<String> b = new ArrayList<String>();        
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        
}
}
}
Copier après la connexion

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         
 Collection<String> a = new ArrayList<String>(); 8         
 Collection<String> b = new ArrayList<String>(); 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);      
 }
 }
  }
Copier après la connexion
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.

Liste

L'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.

Set

L'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 List<E>extends Collection<E> 4 
 *-- add(int index, E element) 在列表的指定位置插入指定元素 5
  *-- addAll(int index, Collection<? extends E> c) 
 *-- E get(int index)  //返回列表中指定位置的元素。 7 
 *-- int indexOf(Object o)  // 返回此列表中第一次出现的指定元素的索引 8 
 *-- listIterator() 
 *-- e set(int index, E element)  // 用指定元素替换列表中指定位置的元素10 
 *-- void remove(int position)  移除指定位置的元素11 
 *-- List<E> subList(int fromIndex, int toIndex ) 
 类似substring()12 */13 import java.util.ArrayList;14 15 class CollT {16     
 public static void main(String[] args) {17         
 ArrayList<String> list = new ArrayList<String>();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     }
  }
Copier après la connexion

 

 

 

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal