Heim  >  Artikel  >  Java  >  Definition und allgemeine Methoden der Collection-Schnittstelle

Definition und allgemeine Methoden der Collection-Schnittstelle

零下一度
零下一度Original
2017-06-26 09:42:297568Durchsuche

1. Definition der Collection-Schnittstelle

public interfaceCollection1a4db2c2c2313771e5742b6debf617a1extends iterable1a4db2c2c2313771e5742b6debf617a1

Aus der Definition der Schnittstelle geht hervor, dass dies der Fall ist Die Schnittstelle verwendet eine generische Typdefinition. Der spezifische Operationstyp muss während des Betriebs angegeben werden. Dies kann die Sicherheit von Klassensatzoperationen gewährleisten und ClassCastException-Ausnahmen vermeiden.

Collection ist die grundlegendste Collection-Schnittstelle. Eine Collection repräsentiert eine Gruppe von Objekten, also die Elemente der Collection. Die von Java JDK bereitgestellten Klassen sind alle von Collection geerbten „Unterschnittstellen“, wie z. B. List und Set.

Alle Klassen, die die Collection-Schnittstelle implementieren, müssen zwei Standardkonstruktoren bereitstellen:

1 Der Parameterlose Konstruktor wird verwendet, um eine leere Sammlung zu erstellen

2 .Der Konstruktor mit a Der Collection-Parameter wird verwendet, um eine neue Collection zu erstellen, die dieselben Elemente wie eine herkömmliche Collection enthält. Mit diesem Konstruktor kann der Benutzer eine Sammlung kopieren.

Überprüfung: Arrays

   [] x= [5];   Student [] list= Student[5];

2. Sammlung häufig verwendeter Methoden

Direkter Code:

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 
 }

Ausgabe:


/上面示例的打印结果!! 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

Eine Zusammenfassung gängiger Erfassungsmethoden:

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 的元素上进行迭代的迭代器。

Codebeispiele (achten Sie auf die Vergleichsergebnisse)

Beispiel 1: (Vergleichen Sie hauptsächlich 1. Ob es auskommentierten Inhalt gibt; 2. wahr und falsch und Druckposition; 3. Denken Sie darüber nach die Ausführungsreihenfolge und der String-Typ-Vergleich)


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         
}   
}
}

Beispiel 2:


 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         }
 }
 }

Beispiel drei:


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         
 }
 }
 }

Beispiel vier:


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         }
}
}

Beispiel 5:


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        
}
}
}

Beispiel 6:


 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);      
 }
 }
  }

2. Gemeinsame Methoden von List und Set

Zu den Listenimplementierungsklassen gehören: LinkedList, Vector, ArrayList

Hinweis:

Die von Collection geerbte List-List-Schnittstelle kann in Indexreihenfolge aufgerufen werden, und es gibt eine indizierte Collection .

hat die Funktion einer Liste und die Elemente werden in der Reihenfolge aufgelistet, in der sie hinzugefügt werden.

Sammlung, Liste, Menge und Karte sind hier alle Schnittstellen (Schnittstelle), keine spezifischen Klassenimplementierungen.

List list = new ArrayList(); Dies ist die Anweisung, die wir häufig zum Erstellen einer neuen Liste verwenden. Hier ist List die Schnittstelle und ArrayList die spezifische Klasse.

List

Die List-Schnittstelle erweitert Collection und deklariert die Eigenschaften einer Sammlung, die eine Folge von Elementen speichert. Mit einem auf Null basierenden Index können Elemente anhand ihrer Position in der Liste eingefügt und darauf zugegriffen werden. Eine Liste kann wiederholte Elemente enthalten. Zusätzlich zu den von Collection definierten Methoden definiert List einige eigene Methoden. Beachten Sie noch einmal, dass eine Klasse zwar nicht geändert werden kann,

Eine ClassCastException jedoch generiert wird, wenn ein Objekt mit einem anderen nicht kompatibel ist, beispielsweise wenn versucht wird, einer Klasse ein inkompatibles Objekt hinzuzufügen.

Für die durch Collection definierten Methoden add() und addAll() fügt List die Methoden add(int, Object) und addAll(int, Collection) hinzu. Diese Methoden fügen Elemente am angegebenen Index ein.

Die durch Collection definierte Semantik von add(Object) und addAll(Collection) wurde auch durch List geändert, sodass sie Elemente am Ende der Liste hinzufügen.

Um das am angegebenen Ort gespeicherte Objekt abzurufen, können Sie die Methode get() mit dem Index des Objekts aufrufen.

Um einem Element in der Klassentabelle einen Wert zuzuweisen, können Sie die Methode set() aufrufen und den Index des zu ändernden Objekts angeben.

Rufen Sie indexOf() oder lastIndexOf() auf, um den Index eines Objekts abzurufen.

Durch Aufrufen der Methode subList() können Sie eine Unterliste der Liste abrufen, die den Start- und Endindex angibt. Diese Methode macht die Listenverarbeitung sehr komfortabel.

Set

Die Set-Collection-Schnittstelle definiert eine Collection. Es erweitert Collection und beschreibt Funktionen von Sammlungen, die das Kopieren von Elementen nicht zulassen. Wenn Sie daher versuchen, der Sammlung ein kopiertes Element hinzuzufügen, gibt die Methode add() false zurück. Es selbst definiert keine zusätzlichen Methoden.

Zusammenfassung:

Merkmale der Listensammlung

1) Elemente sind geordnet (Zugriff über Index möglich)

2) Elemente können wiederholt werden und können mehrere Nullwerte speichern

Merkmale von Set:

1) Elemente sind ungeordnet (auf Index kann nicht zugegriffen werden)

2) Elemente können nicht wiederholt werden. Es kann nur einen Nullwert geben

Codebeispiel:

 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     }
  }

 

 

 

Das obige ist der detaillierte Inhalt vonDefinition und allgemeine Methoden der Collection-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn