Java에서 ArrayList 사용
ArrayList는
List 인터페이스를 구현하는 동적 배열입니다. 이 인터페이스의 사용자는 삽입 된 요소를 완전히 제어 할 수 있으며 위치별로 액세스하고 목록에서 요소를 검색합니다 .
ArrayList List의 모든 메소드를 구현하며, 그 외에도 클래스에는 목록을 저장하는 데 사용되는 배열의 크기를 조작하는 것과 같은 자체 메소드가 있습니다. 이 클래스는 와 동일합니다.
Vector.
Arraylist는 데이터를 저장하는 배열을 사용하며, 이 배열에는 요소가 삽입될 때마다 자동으로 조정되는 기능이 있습니다. size.
여러 스레드에서 동시에 목록에 액세스할 수 있도록 많은 수의 항목을 추가하기 전에 ArrayList의 용량을 늘리는 ensureCapacity 메서드가 있습니다. 이것은 다른 스레드가 목록의 크기를 액세스하고 업데이트하기 때문에 수정, 삽입, 삭제와 관련하여 문제가 발생할 수 있습니다. 해결책은 Collections.synchronizedList.
목록 목록 = Collections.synchronizedList(new ArrayList(...)); 반복자 또는 listIterator 클래스로 목록을 탐색하지만 목록이 수정된 경우: 삭제, 삽입... 반복자를 만든 후 후자는 예외를 throw합니다
ConcurrentModificationException입니다. 해결책은 반복자가 생성 된 후 및 읽기 중에 다른 스레드가 액세스하지 못하도록하는 상호 제외를 만드는 것입니다.
Constructors
ArrayList 에는 세 개의 생성자가 있습니다.
-
ArrayList(): 초기 크기가 10.
-
ArrayList(Collection extends E> c): 데이터 컬렉션에서 목록을 만들고 컬렉션이 null인 경우 예외를 throw합니다
NullPointerException-
ArrayList(int capacite): 초기 크기를 설정하여 목록을 만들고 크기가 음수이면 IllegalArgumentException을 발생시킵니다.
Methods
1)
add(Object o): end.
list.add("Hello");
2)
add(int indice, Object o): 중간에 삽입 .
세 번째 위치에 문자열 String을 삽입합니다.
3)
addAll(Collection c): 컬렉션 추가 .
ArrayList l1 = 새로운 ArrayList(); l1.add("단어"); l1.add(12); l1.add(10.4f)입니다. list.addAll(l1); |
이 메서드는 다른 목록을 추가합니다
l1 목록 끝에
list.
4)
addAll(int index, Collection c): 중간에 컬렉션을 추가합니다.
위치 3에 l1 목록을 삽입하십시오. 인덱스가 3보다 큰 다른 요소는 오프셋됩니다.
5)
clear(): 모든 요소를 삭제합니다.
6)
contains(Object o): 요소 Membership.
boolean b = list.contains(o) |
o 객체가 목록에 속하는 경우 b 값은 참입니다.
8)
ensureCapacity(int capacite): 용량을 늘리고 최소 용량으로 여러 요소를 보유할 수 있도록 합니다.
list.ensureCapacity(10)입니다. |
이렇게 하면 10개의 요소로 용량이 증가합니다.
9)
get(int index): 객체를 한 위치로 되돌립니다.
system.out.println(list.get(2)); |
이 함수는 목록에 저장된 두 번째 개체를 표시합니다.
10)
indexOf(Object o): 요소의 인덱스를 반환합니다.
정수 변수 k는 개체 o4의 첫 번째 발생에 대한 인덱스를 받습니다. 우리는 첫 번째 것만 잘 말했습니다 occurrence.
11)
isEmpty(): 목록이 비어 있으면 true를 반환합니다.
목록이 비어 있으면 b는 true입니다.
12)
remove(Object o): o.
부울 b = list.remove("o4"); |
개체가 존재하고 성공적으로 삭제된 경우 true를 반환합니다.
13)
removeAll(컬렉션 > c): arguments.
AarrayList입니다< 문자열> lc = 새로운 ArrayList< 문자열> (); lc 입니다. 추가("O1"); lc 입니다. 추가("O2"); lc 입니다. 추가("O3"); list.removeAll(lc); |
요소를 찾아 삭제합니다.
14)
removeRange( int start, int end): 아래 첨자의 시작과 끝 사이에 있는 요소를 제거합니다.
이 절차에서는 3과 8.
15)
retainsAll(컬렉션 > c): 컬렉션에 있는 요소만 유지합니다. c.
16)
set(int index, Object o): 객체를 특정 위치로 수정합니다.
위치 3의 개체가 o5.
17)로 대체되었습니다.
size(): 요소의 수를 반환합니다.
18)
subList(int start, int end): 시작과 끝 사이의 조각을 반환합니다.
19)
toArray(): 1차원의 배열을 반환합니다.
문자열[] t = list.toArray(); |
t 배열에는 목록의 모든 객체가 포함됩니다. 이 방법은 배열만 허용하는 함수가 있을 때 유용합니다(예: .
20)
trimToSize(): 저장 용량을 최대 수준으로 줄입니다.
ArrayList를 찾아보는 방법
두 가지 방법으로 ArrayList를 찾아볼 수 있습니다.
1) 루프 for
for(int i = 0; i < list.size(); i++) system.out.println (list.get (i)); 또는 예를 들어 유형을 알고 있는 경우: for(정수: 목록) system.out.println (숫자); |
2) 반복자 + while < / span >< / h4>이터레이터 itr = list.iterator(); while(itr.hasNext()) system.out.println (itr.next()); |
Example
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//초기 용량이 4
ArrayList str = new ArrayList(4);
//추가
str.add("o1");
str.add("o2");
str.add("o3");
str.add("o4");
//우리가 본 몇 가지 메서드
System.out.println("index of "+"o2: "+str.indexOf("o2"));
System.out.println("o3가 존재합니까?" +str.contains("o3"));
System.out.println("o2가 성공적으로 제거되었습니다: "+str.remove("o2"));
System.out.println("크기: "+str.size());
System.out.println("[1, 3] : "+str.subList(1, 3));
//parcours
for(String s : str)
System.out.println(s);
str.clear();
System.out.println("목록이 비어 있습니까?" +str.isEmpty());
}
}
References:
javadoc: ArrayList