ArrayList 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인터페이스의 크기 조정 가능한 배열 구현입니다 List
.
[Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ArrayList : Java.Util.AbstractList, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ArrayList = class
inherit AbstractList
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IList
interface ICollection
interface IIterable
interface IRandomAccess
- 상속
- 특성
- 구현
설명
인터페이스의 크기 조정 가능한 배열 구현입니다 List
. 모든 선택적 목록 작업을 구현하고 를 비롯한 null
모든 요소를 허용합니다. 인터페이스를 구현하는 List
것 외에도 이 클래스는 내부적으로 목록을 저장하는 데 사용되는 배열의 크기를 조작하는 메서드를 제공합니다. (이 클래스는 비동기화되지 않는다는 점을 제외하고 와 거의 동일합니다 Vector
.)
size
, , isEmpty
, get
set
, iterator
및 listIterator
작업은 일정한 시간에 실행됩니다. 연산은 add
분할 상환된 상수 시간에 실행됩니다. 즉, n 요소를 추가하려면 O(n) 시간이 필요합니다. 다른 모든 작업은 선형 시간으로 실행됩니다(대략적으로 말). 상수 계수는 구현에 비해 낮습니다 LinkedList
.
각 ArrayList
instance 용량이 있습니다. 용량은 목록에 요소를 저장하는 데 사용되는 배열의 크기입니다. 항상 목록 크기만큼 큽니다. 요소가 ArrayList에 추가되면 해당 용량이 자동으로 증가합니다. 증가 정책의 세부 정보는 요소를 추가하는 데 일정한 분할 상환 시간 비용이 있다는 사실 외에는 지정되지 않습니다.
애플리케이션은 작업을 사용하여 많은 수의 ArrayList
요소를 추가하기 전에 instance 용량을 ensureCapacity
늘릴 수 있습니다. 이렇게 하면 증분 재할당의 양이 줄어들 수 있습니다.
<strong>이 구현은 동기화되지 않습니다.</strong> 여러 스레드가 ArrayList
동시에 instance 액세스하고 하나 이상의 스레드가 목록을 구조적으로 수정하는 경우 외부에서 동기화해야 합니다. 구조 수정은 하나 이상의 요소를 추가하거나 삭제하거나 지원 배열의 크기를 명시적으로 조정하는 작업입니다. 단지 요소의 값을 설정하는 것은 구조적 수정이 아닙니다. 이 작업은 일반적으로 목록을 자연스럽게 캡슐화하는 일부 개체에서 동기화하여 수행됩니다.
이러한 개체가 없으면 메서드를 사용하여 Collections#synchronizedList Collections.synchronizedList
목록을 "래핑"해야 합니다. 이는 목록에 대한 실수로 동기화되지 않은 액세스를 방지하기 위해 생성 시 가장 잘 수행됩니다.
List list = Collections.synchronizedList(new ArrayList(...));
<p id="fail-fast"> 이 클래스의 #iterator() iterator
및 #listIterator(int) listIterator
메서드에서 반환된 반복기는 em>fail-fast</em>입니다<. 반복기가 생성된 후 언제든지 목록이 구조적으로 수정되면 반복기의 자체 ListIterator#remove() remove
또는 ListIterator#add(Object) add
메서드를 통하지 않으면 반복기가 을 ConcurrentModificationException
throw합니다. 따라서 동시 수정에 직면하여 반복기는 나중에 결정되지 않은 시간에 임의적이고 비결정적인 동작을 위험에 빠뜨리지 않고 빠르고 깨끗하게 실패합니다.
반복기의 장애 조치(fail-fast) 동작은 일반적으로 비동기화된 동시 수정이 있을 때 하드 보장을 할 수 없으므로 보장할 수 없습니다. 장애 조치(fail-fast) 반복기는 최선을 다해 throw ConcurrentModificationException
합니다. 따라서 정확성을 위해 이 예외에 의존하는 프로그램을 작성하는 것은 잘못된 것입니다. 반복기의 장애 조치(fail-fast) 동작은 버그를 검색하는 데만 사용해야 합니다.
이 클래스는 Java Collections Framework의 멤버입니다.
1.2에 추가되었습니다.
에 대한 Java 설명서입니다 java.util.ArrayList
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
ArrayList() |
초기 용량이 10인 빈 목록을 생성합니다. |
ArrayList(ICollection) |
컬렉션의 반복기에서 반환되는 순서대로 지정된 컬렉션의 요소를 포함하는 목록을 생성합니다. |
ArrayList(Int32) |
지정된 초기 용량을 사용하여 빈 목록을 생성합니다. |
ArrayList(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
IsEmpty |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
JniIdentityHashCode |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
JniPeerMembers |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
ModCount |
이 목록이 구조적으로 수정된 횟수입니다. (다음에서 상속됨 AbstractList) |
PeerReference |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
Add(Int32, Object) |
추가할 항목 (다음에서 상속됨 AbstractList) |
Add(Object) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
AddAll(ICollection) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
AddAll(Int32, ICollection) |
추가할 항목 (다음에서 상속됨 AbstractList) |
Clear() |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
Clone() |
이 |
Contains(Object) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
ContainsAll(ICollection) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
Dispose() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
Dispose(Boolean) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
EnsureCapacity(Int32) |
필요한 경우 이 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
ForEach(IConsumer) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
Get(Int32) |
이 목록의 지정된 위치에 있는 요소를 반환합니다. |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
IndexOf(Object) |
추가할 항목 (다음에서 상속됨 AbstractList) |
Iterator() |
이 목록의 요소에 대한 반복기를 적절한 순서로 반환합니다. (다음에서 상속됨 AbstractList) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
LastIndexOf(Object) |
추가할 항목 (다음에서 상속됨 AbstractList) |
ListIterator() |
추가할 항목 (다음에서 상속됨 AbstractList) |
ListIterator(Int32) |
추가할 항목 (다음에서 상속됨 AbstractList) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Remove(Int32) |
추가할 항목 (다음에서 상속됨 AbstractList) |
Remove(Object) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
RemoveAll(ICollection) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
RemoveIf(IPredicate) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
RemoveRange(Int32, Int32) |
인덱스가 , 포함 및 |
ReplaceAll(IUnaryOperator) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
RetainAll(ICollection) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
Set(Int32, Object) |
추가할 항목 (다음에서 상속됨 AbstractList) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
Size() |
이 목록의 요소 수를 반환합니다. |
Sort(IComparator) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
Spliterator() |
이 목록의 <요소 위에 em>late-binding</em> 및 <em>fail-fast</em> |
SubList(Int32, Int32) |
추가할 항목 (다음에서 상속됨 AbstractList) |
ToArray() |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
ToArray(Object[]) |
추가할 항목 (다음에서 상속됨 AbstractCollection) |
ToArray<T>() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
TrimToSize() |
이 |
UnregisterFromRuntime() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.DisposeUnlessReferenced() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.Finalized() |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.JniManagedPeerState |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
GetJniTypeName(IJavaPeerable) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
ToEnumerable(IIterable) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |
ToEnumerable<T>(IIterable) |
인터페이스의 크기 조정 가능한 배열 구현입니다 |