수집 : 객체 만 저장할 수 있고 객체 유형은 다를 수 있으며 길이는 가변적 일 수 있습니다.
일반적으로 사용되는 인터페이스 및 클래스 :
1. List Interface (순서 및 반복 가능) : ArrayList 클래스, LinkedList, Vector Class
2. 인터페이스 세트 (변절, 반복 할 수 없음) : 해시 클래스, treeset 클래스
3. MAP 인터페이스 (키 값 쌍, 키 전용, 값 고유 한 값) : HashMap 클래스, HashTable 클래스, Treemap 클래스
컬렉션 클래스의 루프 트래버스
1. 루프의 일반 : (int i = 0; i <arr.size (); i ++) {…}
2. foreach (루프를 위해 향상) : (대상 i : arr) {…}와 같은 것과 같은 것입니다.
3. ITERATOR (ITERATOR) : 예를 들어, ITERATOR IT = ARR.ITERATOR (); while (it.hasnext ()) {object o = it.next (); …}
참고 : 트래버스 중에는 어레이 또는 컬렉션을 수정할 수 없으며, 루프는 트래버스 동안 수정할 수 있습니다.
ArrayList, LinkedList 및 Vector의 차이
Arraylist : 고효율, 주로 쿼리에 사용됩니다
Linkedlist : 주로 삽입 및 삭제에 사용됩니다
벡터 : 스레드-안전, 주로 쿼리에 사용됩니다
암호:
import java.util.arraylist; import java.util.iterator; import java.util.linkedlist; import java.util.list; import java.util.vector; public class listest {public static void main (String) {list arraylist = new arraylist (); New LinkedList (); 벡터 (); arraylist.add ( "1"); // 문자 유형 arraylist.add ( "1"); // 요소 arraylist.add ( "2"); arraylist.add (1); // 숫자 유형 linkedList.Add ( "1"); linkedList.Add ( "1"); LinkedList.Add ( "2"); LinkedList.add (1); vector.add ( "1"); vector.add ( "1"); vector.add ( "2"); Vector.add (1); system.out.println (obj);} for (int i = 0; i <linkedlist.size (); i ++) {// 루프 System.out.println (arraylist.get (i));} iterator it = vector.iterator (); // iterator while (it.hasnext ()) {object j = it.next (); system.out.println (j);}}}해시 세트와 트리 셋의 차이
HASHSET : Hashset은 해시 테이블에 의해 구현됩니다. 해시 세트의 데이터는 변하지 않습니다. 당신은 null을 넣을 수 있지만, 당신은 하나만 넣을 수 있습니다.
Treeset : TreeSet은 2 차례 트리에서 구현됩니다. TreeSet의 데이터가 자동으로 정렬되고 Null 값을 배치 할 수 없습니다.
암호:
public class settest {public static void main (string [] args) {set hashset = new Hashset (); set treeset = new treeset (); hashset.add ( "1"); // 문자 유형 hashset.add ( "1"); // 요소 hashset.add ( "2")를 반복합니다. Hashset.add (1); // 번호 유형 treeset.add ( "1"); treeset.add ( "1"); treeset.add ( "2"); //treeset.add(1); //보고 오류, treeset은 (오브젝트 i : Hashset) {// foreach loop system.out.println (i);} iterator it = treeset.iterator ()에 대해 다른 데이터 유형을 추가 할 수 없습니다. // iterator while (it.hasnext ()) {object j = it.next (); system.out.println (j);}}}참고 : SET 인터페이스에는 GET 메소드가 없으므로 루프가 횡단하는 경우 일반을 사용할 수 없습니다.
해시 맵, 해시 가능 및 트리 맵의 차이
해시 맵 : 해시 맵은 하나의 널 키와 여러 널 값을 허용합니다.
HASHTABLE : 해시 테이블의 키와 값은 널가 될 수 없습니다.
Treemap : 키에 따라 저장하는 레코드를 정렬 할 수 있습니다. 기본적으로 주요 값의 오름차순 순서로 정렬됩니다. 정렬 된 비교기를 지정할 수도 있습니다. 반복자로 가로 지르면 얻은 레코드가 정렬됩니다.
암호:
import java.util.hashmap; import java.util.hashtable; import java.util.iterator; import java.util.map; import java.util.set; import java.util.treemap; public class maptest {public static void main (] argshmap = new Hashmap (); hashtable (); map treemap = new treemap (); hashmap.put (1, "1"); // 문자 유형 값 hashmap.put (2, "1"); // 동일한 값 hashmap.put (3, "2"); hashmap.put (4, 1); // 숫자 유형 값 hashmap.put ( "5", 1); // 문자 유형 key hashtable.put (1, "1"); hashtable.put (2, "1"); hashtable.put (3, "2"); hashtable.put (4, 1); hashtable.put ( "5", 1); treemap.put (1, "1"); treemap.put (2, "1"); treemap.put (5, "2"); "5"); 1); treemap.put (1, "1"); treemap.put (2, "1"); Treemap.put (5, "2"); Treemap.put (4, 1); // treemap.put ( "5", 1); // 오류 가보고되어, TreeMap은 다른 유형의 키를 추가 할 수 없습니다. // (개체 키 : hashmap.keyset ()) {system.out.println (key);} // transhtable 값 (개체 값 : hashtable.values ()) {system.out set. hashmap.keyset (); for (iterator iter = set.iterator (); iter.hasnext ();) {object key = iter.next (); object value = hashmap.get (key); system.out.println (key+"/t"+value);}. 반복자 테이블 = hashtable.entryset (). iterator (); while (table.hasnext ()) {map.entry entry = (map.entry) table.next (); 객체 키 = Entry.GetKey (); // key 객체 값을 가져옵니다 value = entry.getValue (); // 값 System.out.println (key+"/t"+value)을 가져옵니다. } // 반복적으로 TREEMAVE TREEMAP 키 값 쌍 반복자 TMP = Treemap.entryset (). iterator (); while (tmp.hasnext ()) {map.entry entry = (map.entry) tmp.next (); 객체 키 = Entry.GetKey (); // key 객체 값을 가져옵니다 value = entry.getValue (); // 값 System.out.println (key+"/t"+value)을 가져옵니다. }}}스레드 안전에 대한 수업에는 Vecto, Hashtabl, StringBuffe가 포함됩니다
비 스레드 안전 : Arraylist, Linkedlist, Hashmap, Hashset, Treemap, Treeset, StringBulider
참고 : ConsurenThashMap은 스레드 안전을 위해 해시 맵 대신 사용할 수 있으며 해시 가능보다 효율적입니다.
Java의 자체 메커니즘은 스레드 안전을 완전히 보장 할 수 없습니다. 직접 코딩하고 제어해야합니다.