ArrayList.Insert(Int32, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ArrayList의 지정된 인덱스에 요소를 삽입합니다.
public:
virtual void Insert(int index, System::Object ^ value);
public virtual void Insert (int index, object value);
public virtual void Insert (int index, object? value);
abstract member Insert : int * obj -> unit
override this.Insert : int * obj -> unit
Public Overridable Sub Insert (index As Integer, value As Object)
매개 변수
- index
- Int32
value
을 삽입해야 하는 인덱스(0부터 시작)입니다.
구현
예외
예제
다음 코드 예제에서는 에 요소를 삽입하는 방법을 보여 있습니다 ArrayList.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
// Creates and initializes a new ArrayList using Insert instead of Add.
ArrayList^ myAL = gcnew ArrayList;
myAL->Insert( 0, "The" );
myAL->Insert( 1, "fox" );
myAL->Insert( 2, "jumps" );
myAL->Insert( 3, "over" );
myAL->Insert( 4, "the" );
myAL->Insert( 5, "dog" );
// Creates and initializes a new Queue.
Queue^ myQueue = gcnew Queue;
myQueue->Enqueue( "quick" );
myQueue->Enqueue( "brown" );
// Displays the ArrayList and the Queue.
Console::WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL );
Console::WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue );
// Copies the Queue elements to the ArrayList at index 1.
myAL->InsertRange( 1, myQueue );
// Displays the ArrayList.
Console::WriteLine( "After adding the Queue, the ArrayList now contains:" );
PrintValues( myAL );
// Search for "dog" and add "lazy" before it.
myAL->Insert( myAL->IndexOf( "dog" ), "lazy" );
// Displays the ArrayList.
Console::WriteLine( "After adding \"lazy\", the ArrayList now contains:" );
PrintValues( myAL );
// Add "!!!" at the end.
myAL->Insert( myAL->Count, "!!!" );
// Displays the ArrayList.
Console::WriteLine( "After adding \"!!!\", the ArrayList now contains:" );
PrintValues( myAL );
// Inserting an element beyond Count throws an exception.
try
{
myAL->Insert( myAL->Count + 1, "anystring" );
}
catch ( Exception^ myException )
{
Console::WriteLine( "Exception: {0}", myException );
}
}
void PrintValues( IEnumerable^ myList )
{
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
The ArrayList initially contains the following:
The fox jumps over the dog
The Queue initially contains the following:
quick brown
After adding the Queue, the ArrayList now contains:
The quick brown fox jumps over the dog
After adding "lazy", the ArrayList now contains:
The quick brown fox jumps over the lazy dog
After adding "!!!", the ArrayList now contains:
The quick brown fox jumps over the lazy dog !!!
Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
Parameter name: index
at System.Collections.ArrayList.Insert(Int32 index, Object value)
at SamplesArrayList.Main()
*/
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList using Insert instead of Add.
ArrayList myAL = new ArrayList();
myAL.Insert( 0, "The" );
myAL.Insert( 1, "fox" );
myAL.Insert( 2, "jumps" );
myAL.Insert( 3, "over" );
myAL.Insert( 4, "the" );
myAL.Insert( 5, "dog" );
// Creates and initializes a new Queue.
Queue myQueue = new Queue();
myQueue.Enqueue( "quick" );
myQueue.Enqueue( "brown" );
// Displays the ArrayList and the Queue.
Console.WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL );
Console.WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue );
// Copies the Queue elements to the ArrayList at index 1.
myAL.InsertRange( 1, myQueue );
// Displays the ArrayList.
Console.WriteLine( "After adding the Queue, the ArrayList now contains:" );
PrintValues( myAL );
// Search for "dog" and add "lazy" before it.
myAL.Insert( myAL.IndexOf( "dog" ), "lazy" );
// Displays the ArrayList.
Console.WriteLine( "After adding \"lazy\", the ArrayList now contains:" );
PrintValues( myAL );
// Add "!!!" at the end.
myAL.Insert( myAL.Count, "!!!" );
// Displays the ArrayList.
Console.WriteLine( "After adding \"!!!\", the ArrayList now contains:" );
PrintValues( myAL );
// Inserting an element beyond Count throws an exception.
try {
myAL.Insert( myAL.Count+1, "anystring" );
} catch ( Exception myException ) {
Console.WriteLine("Exception: " + myException.ToString());
}
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
The ArrayList initially contains the following:
The fox jumps over the dog
The Queue initially contains the following:
quick brown
After adding the Queue, the ArrayList now contains:
The quick brown fox jumps over the dog
After adding "lazy", the ArrayList now contains:
The quick brown fox jumps over the lazy dog
After adding "!!!", the ArrayList now contains:
The quick brown fox jumps over the lazy dog !!!
Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
Parameter name: index
at System.Collections.ArrayList.Insert(int index, Object value)
at SamplesArrayList.Main()
*/
Imports System.Collections
Public Class SamplesArrayList
Public Shared Sub Main()
' Creates and initializes a new ArrayList using Insert instead of Add.
Dim myAL As New ArrayList()
myAL.Insert(0, "The")
myAL.Insert(1, "fox")
myAL.Insert(2, "jumps")
myAL.Insert(3, "over")
myAL.Insert(4, "the")
myAL.Insert(5, "dog")
' Creates and initializes a new Queue.
Dim myQueue As New Queue()
myQueue.Enqueue("quick")
myQueue.Enqueue("brown")
' Displays the ArrayList and the Queue.
Console.WriteLine("The ArrayList initially contains the following:")
PrintValues(myAL)
Console.WriteLine("The Queue initially contains the following:")
PrintValues(myQueue)
' Copies the Queue elements to the ArrayList at index 1.
myAL.InsertRange(1, myQueue)
' Displays the ArrayList.
Console.WriteLine("After adding the Queue, the ArrayList now contains:")
PrintValues(myAL)
' Search for "dog" and add "lazy" before it.
myAL.Insert(myAL.IndexOf("dog"), "lazy")
' Displays the ArrayList.
Console.WriteLine("After adding ""lazy"", the ArrayList now contains:")
PrintValues(myAL)
' Add "!!!" at the end.
myAL.Insert(myAL.Count, "!!!")
' Displays the ArrayList.
Console.WriteLine("After adding ""!!!"", the ArrayList now contains:")
PrintValues(myAL)
' Inserting an element beyond Count throws an exception.
Try
myAL.Insert(myAL.Count + 1, "anystring")
Catch myException As Exception
Console.WriteLine("Exception: " + myException.ToString())
End Try
End Sub
Public Shared Sub PrintValues(myList As IEnumerable)
Dim obj As [Object]
For Each obj In myList
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' The ArrayList initially contains the following:
' The fox jumps over the dog
' The Queue initially contains the following:
' quick brown
' After adding the Queue, the ArrayList now contains:
' The quick brown fox jumps over the dog
' After adding "lazy", the ArrayList now contains:
' The quick brown fox jumps over the lazy dog
' After adding "!!!", the ArrayList now contains:
' The quick brown fox jumps over the lazy dog !!!
' Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
' Parameter name: index
' at System.Collections.ArrayList.Insert(Int32 index, Object value)
' at SamplesArrayList.Main()
설명
ArrayList 는 null
유효한 값으로 허용되고 중복 요소를 허용합니다.
가 이미 이Capacity면 Count 내부 배열을 자동으로 다시 할당하여 의 ArrayList 용량이 증가하고 새 요소가 추가되기 전에 기존 요소가 새 배열에 복사됩니다.
하는 경우 index
값과 같음 Count를 value
끝에 추가 됩니다 ArrayList합니다.
목록처럼 연속된 요소로 구성된 컬렉션에서는 삽입 지점 다음에 있는 요소를 아래로 이동하여 새 요소로 적용합니다. 컬렉션에 인덱스가 지정된 경우 이동되는 요소의 인덱스도 업데이트됩니다. 요소가 해시 테이블 같은 버킷으로 개념적으로 그룹화되어 있는 컬렉션에는 이러한 동작이 적용되지 않습니다.
이 메서드는 작업입니다 O(n)
. 여기서 n
은 입니다 Count.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET