1. Collection 인터페이스 정의
public 인터페이스Collection
인터페이스 정의에서 이 인터페이스는 일반 정의를 사용하며 특정 작업 유형은 실행 중에 지정되어야 함을 알 수 있습니다. 작업. 이를 통해 클래스 집합 작업의 안전성을 보장하고 ClassCastException 예외를 방지할 수 있습니다.
Collection은 가장 기본적인 컬렉션 인터페이스입니다. 컬렉션은 개체 그룹, 즉 컬렉션의 요소를 나타냅니다. Java JDK에서 제공하는 클래스는 모두 List 및 Set과 같이 Collection에서 상속된 "하위 인터페이스"입니다.
Collection 인터페이스를 구현하는 모든 클래스는 두 가지 표준 생성자를 제공해야 합니다.
1. 매개 변수가 없는 생성자는 빈 컬렉션을 만드는 데 사용됩니다.
2. Collection 매개 변수가 있는 생성자는 이 행의 컬렉션은 기존 컬렉션과 동일한 요소를 갖습니다. 이 생성자를 사용하면 사용자가 컬렉션을 복사할 수 있습니다.
검토: 배열
[] x= [5]; Student [] list= Student[5];
2. 일반적으로 사용되는 수집 방법
직접 코드:
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 }
출력:
/上面示例的打印结果!! 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(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 的元素上进行迭代的迭代器。
code 예( 비교 결과 주목)
예시 1: (주로 비교 1. 주석 처리된 내용이 있는지, 2. 참과 거짓, 인쇄 위치, 3. 실행 순서와 문자열 종류의 비교를 생각해 보세요)
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 } } }
예 2:
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 } } }
예 3:
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 } } }
예 4:
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 } } }
예 5:
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 } } }
예 6:
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); } } }
2. List 및 set
List 구현 클래스의 일반적인 메서드에는 LinkedList, Vector, ArrayList
참고:
List 목록 인터페이스, Collection에서 상속됨 , 인덱싱될 수 있습니다. 인덱싱된 컬렉션에 대한 순차적 액세스입니다.
리스트 기능이 있고, 요소가 추가된 순서대로 나열됩니다.
여기서 Collection, List, Set 및 Map은 모두 특정 클래스 구현이 아닌 인터페이스(인터페이스)입니다.
List list = new ArrayList(); 이것은 새 List를 생성하는 데 자주 사용하는 문입니다. 여기서 List는 인터페이스이고 ArrayList는 특정 클래스입니다.
List
List 인터페이스는 Collection을 확장하고 일련의 요소를 저장하는 컬렉션의 특성을 선언합니다. 0부터 시작하는 아래 첨자를 사용하면 목록의 위치에 따라 요소를 삽입하고 액세스할 수 있습니다. 목록에는 반복되는 요소가 포함될 수 있습니다. Collection에서 정의한 메서드 외에도 List는 자체적인 몇 가지 메서드를 정의합니다. 클래스를 수정할 수는 없지만 클래스에 호환되지 않는 개체를 추가하려고 시도하는 경우와 같이 한 개체가 다른 개체와 호환되지 않는 경우 ClassCastException이 생성된다는 점을 다시 한 번 참고하세요.
Collection에서 정의한 add() 및 addAll() 메서드의 경우 List는 add(int, Object) 및 addAll(int, Collection) 메서드를 추가합니다. 이러한 메서드는 지정된 인덱스에 요소를 삽입합니다.
Collection에서 정의한 add(Object)와 addAll(Collection)의 의미도 List에서 목록 끝에 요소를 추가하도록 변경되었습니다.
지정된 위치에 저장된 개체를 가져오려면 개체의 첨자와 함께 get() 메서드를 호출하면 됩니다.
클래스 테이블의 요소에 값을 할당하려면 set() 메서드를 호출하고 변경되는 객체의 첨자를 지정할 수 있습니다.
객체의 인덱스를 얻으려면 indexOf() 또는 lastIndexOf()를 호출하세요.
subList() 메소드를 호출하면 시작 첨자와 끝 첨자를 지정하는 목록의 하위 목록을 얻을 수 있습니다. 이 방법을 사용하면 목록 처리가 매우 편리해집니다.
Set세트 컬렉션 인터페이스는 컬렉션을 정의합니다. Collection을 확장하고 요소 복사를 허용하지 않는 컬렉션의 기능을 설명합니다. 따라서 복사된 요소를 컬렉션에 추가하려고 하면 add() 메서드는 false를 반환합니다. 자체적으로는 추가 메서드를 정의하지 않습니다.
요약:
목록 컬렉션의 특징
1) 요소는 순서가 지정됩니다(인덱스로 액세스 가능)
2) 요소는 반복 가능하고 여러 null 값을 저장할 수 있습니다.
Set 집합의 특징:
1) 요소는 순서가 없습니다(인덱스로 액세스할 수 없음)
2) 요소는 반복될 수 없으며 하나의 null 값만 가질 수 있습니다.
코드 예:
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 } }
위 내용은 Collection 인터페이스의 정의 및 일반적인 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!