|-목록 : 요소가 주문됩니다 (저장된 상태에서 나가면 순서가 엉망이되지 않습니다). 코너 마크 2)이 세트로 인해 시스템에는 인덱스가 있으며
|- ArrayList : 기본 데이터 구조는 배열 구조를 사용합니다 (배열의 길이는 변수보다 50% 더 길다) (기능은 쿼리가 매우 빠르지 만 추가 및 삭제가 느리다는 것입니다. 스레드는 동기화되지 않습니다.
|- LinkedList : 기본 데이터 구조는 링크 된 목록 구조입니다 (특성은 쿼리가 느리고 추가 및 삭제가 더 빠릅니다)
|- 벡터 : 기본 레이어는 배열 데이터 구조 스레드 동기화입니다 (배열 길이는 변수에 의해 100% 확장 됨) (쿼리 및 추가 및 삭제가 매우 느리고 ArrayList로 대체되었습니다).
목록 : 고유 한 방법. 각도 마크를 작동 할 수있는 모든 방법은이 시스템의 고유 한 방법입니다.
증가하다
코드 사본은 다음과 같습니다.
부울 추가 (int index, e 요소)
부울 addall (인덱스, 컬렉션)
코드 사본은 다음과 같습니다.
public static void list_add () {
ArrayList A1 = New ArrayList ();
a1.add ( "Java");
a1.add ( "php"); // 목록 컬렉션의 요소를 반복 할 수 있습니다
a1.add ( ". net");
System.out.println ( "원본 컬렉션 :"+a1);
a1.add (1, "플래시");
a1.add (0, "ps");
System.out.println (a1);
ArrayList A2 = New ArrayList ();
a2.add ( "JavaScript");
a2.add ( "3dmax");
a2.add ( "IBM");
a1.addall (0, a2);
System.out.println (a1);
}
지정된 위치에서 요소를 삭제하십시오
코드 사본은 다음과 같습니다.
부울 제거 (int index)
코드 사본은 다음과 같습니다.
public static void list_remove () {
ArrayList A1 = New ArrayList ();
a1.add ( "JavaScript");
a1.add ( "php");
a1.add ( "플래시");
System.out.println ( "원본 컬렉션 :"+a1);
a1.remove (0);
System.out.println (a1);
}
지정된 각도 세트 (int index, e 요소)의 요소 수정 반환 된 요소가 수정되었습니다.
코드 사본은 다음과 같습니다.
public static void list_set () {
ArrayList A1 = New ArrayList ();
a1.add ( "JavaScript");
a1.add ( "php");
a1.add ( ". net");
System.out.println ( "원본 컬렉션 :"+a1);
a1.set (1, "falsh");
System.out.println (a1);
}
확인하다
코드 사본은 다음과 같습니다.
get (int index) 목록의 지정된 위치에서 요소를 반환합니다.
Subrist (int fromIndex, int toIndex)는 목록에 지정된 index (포함)와 ToIndex (제외) 사이의 일부 요소를 반환합니다.
코드 사본은 다음과 같습니다.
public static void list_get () {
ArrayList A1 = New ArrayList ();
a1.add ( "Java");
a1.add ( "php");
a1.add ( "플래시");
System.out.println (a1.get (0)); // 지정된 각도의 요소를 얻으십시오.
System.out.println (a1.sublist (1, 3)); // 머리를 포함하여 컬렉션의 특정 부분에서 요소를 가져옵니다.
}
List Collection-Specific Ierator : Listiterator (반복자의 하위 인터페이스)
알아채다:
반복하는 동안 컬렉션 객체의 메소드를 통해 컬렉션의 요소를 작동 할 수 없습니다.
동시 모듈 식 소식 예외 (동시 예외)가 발생하기 때문입니다
따라서 반복 할 때 반복자 메소드 만 사용하여 요소를 생성 할 수 있습니다.
반복자 방법은 제한되어 있으므로 요소를 판단, 제거 및 삭제할 수 있습니다.
추가, 수정 등과 같은 다른 작업을 원한다면 하위 인터페이스 인 Listiterator를 사용해야합니다.
이 인터페이스는 List Collection의 ListIterator 메소드를 통해서만 얻을 수 있습니다.
코드 사본은 다음과 같습니다.
공개 수업 listiteratordemo {
public static void main (String [] args) {
ArrayList A1 = New ArrayList ();
a1.add ( "Java01");
a1.add ( "Java02");
a1.add ( "Java03");
a1.add ( "Java04");
System.out.println ( "원래 컬렉션은 :"+a1);
/*반복 프로세스 중 요소 추가 또는 삭제 준비
반복자 it = al.iterator ();
while (it.hasnext ()) {
Object obj = it.next ();
if (obj.equals ( "java02"))
//al.add("java008") ;// 동시 예외는 Iterator가 컬렉션을 작동하고 있으며 더 이상 수집 방법을 사용하여 컬렉션을 작동 할 수 없기 때문에 발생합니다.
it.remove (); // 컬렉션에서 java02 참조를 제거하십시오
System.out.println ( "obj :"+obj);
}
*/
// List의 ListIterator 만 목록 만 인덱스를 갖기 때문에 추가, 삭제, 수정 및 확인 기능이 있습니다.
ListIterator li = a1.listiterator ();
while (li.hasnext ()) {
if (li.next (). Equals ( "java02"))
//li.add("java009 ");
li. 세트 ( "Java006");
}
}
}
벡터 : 열거는 벡터를 가져 오는 독특한 방법으로 반복자와 매우 유사하며 (실제로 열거 및 반복은 동일) 반복자로 대체되었습니다.
코드 사본은 다음과 같습니다.
공개 수업 vectordemo {
public static void main (String [] args) {
벡터 v = 새로운 벡터 ();
v.add ( "Java01");
v.add ( "Java02");
v.add ( "Java03");
v.add ( "Java04");
for (열거 en = v.elements (); en.hasmoreElements ();) {
System.out.println (en.nextElement ());
}
}
}
LinkedList :
특별한 방법 :
addfirst ();
getFirst (); 컬렉션에 요소가 없으면 NosuchelementException이 나타납니다.
removefirst (); removelast (); 컬렉션에 요소가 없으면 NosuchelementException이 나타납니다.
대체 접근법은 JDK1.6에 나타납니다
혜택 ();
peekfirst (); 컬렉션에 요소가 없으면 Null이 반환됩니다.
pollfirst (); polllast (); 컬렉션에 요소가 없으면 Null이 반환됩니다.
코드 사본은 다음과 같습니다.
공개 클래스 LinkedListDemo {
public static void main (String [] args) {
LinkedList Link = New LinkedList ();
link.add ( "java01");
link.add ( "java02");
link.add ( "java03");
link.add ( "java04");
while (! link.isempty ()) {
System.out.println ((link.removelast ());
}
}
}