ArrayList.Remove メソッド

ArrayList 内で最初に見つかった特定のオブジェクトを削除します。

Public Overridable Sub Remove( _
   ByVal obj As Object _) Implements IList.Remove
[C#]
public virtual void Remove(objectobj);
[C++]
public: virtual void Remove(Object* obj);
[JScript]
public function Remove(
   obj : Object);

パラメータ

  • obj
    ArrayList から削除する Object 。値は null 参照 (Visual Basic では Nothing) に設定できます。

実装

IList.Remove

例外

例外の種類 条件
NotSupportedException ArrayList が読み取り専用です。

または

ArrayList が固定サイズです。

解説

このメソッドは順次検索を実行します。したがって、平均検索時間は Count に比例します。つまり、このメソッドは O(n) 操作です。ここで、 nCount です。

このメソッドは、 Object.Equals を呼び出して、等しいかどうかを判断します。

リストなどの連続する要素のコレクションでは、空白になった位置を埋めるために、削除された要素の後にある要素の位置が繰り上げられます。インデックス付きのコレクションの場合は、移動した要素のインデックスも更新されます。この動作は、要素が概念的にバケットにグループ化されているハッシュテーブルなどのコレクションには適用されません。

使用例

ArrayList から要素を削除する方法の例を次に示します。

 
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("The")
        myAL.Add("quick")
        myAL.Add("brown")
        myAL.Add("fox")
        myAL.Add("jumped")
        myAL.Add("over")
        myAL.Add("the")
        myAL.Add("lazy")
        myAL.Add("dog")
        
        ' Displays the ArrayList.
        Console.WriteLine("The ArrayList initially contains the following:")
        PrintValues(myAL)
        
        ' Removes the element containing "lazy".
        myAL.Remove("lazy")
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing ""lazy"":")
        PrintValues(myAL)
        
        ' Removes the element at index 5.
        myAL.RemoveAt(5)
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing the element at index 5:")
        PrintValues(myAL)
        
        ' Removes three elements starting at index 4.
        myAL.RemoveRange(4, 3)
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing three elements starting at index 4:")
        PrintValues(myAL)
    End Sub
    
    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myList.GetEnumerator()
        While myEnumerator.MoveNext()
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' The ArrayList initially contains the following:
'     The    quick    brown    fox    jumped    over    the    lazy    dog
' After removing "lazy":
'     The    quick    brown    fox    jumped    over    the    dog
' After removing the element at index 5:
'     The    quick    brown    fox    jumped    the    dog
' After removing three elements starting at index 4:
'     The    quick    brown    fox 

[C#] 
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add( "The" );
      myAL.Add( "quick" );
      myAL.Add( "brown" );
      myAL.Add( "fox" );
      myAL.Add( "jumped" );
      myAL.Add( "over" );
      myAL.Add( "the" );
      myAL.Add( "lazy" );
      myAL.Add( "dog" );

      // Displays the ArrayList.
      Console.WriteLine( "The ArrayList initially contains the following:" );
      PrintValues( myAL );

      // Removes the element containing "lazy".
      myAL.Remove( "lazy" );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing \"lazy\":" );
      PrintValues( myAL );

      // Removes the element at index 5.
      myAL.RemoveAt( 5 );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing the element at index 5:" );
      PrintValues( myAL );

      // Removes three elements starting at index 4.
      myAL.RemoveRange( 4, 3 );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing three elements starting at index 4:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
      while ( myEnumerator.MoveNext() )
         Console.Write( "\t{0}", myEnumerator.Current );
      Console.WriteLine();
   }
}
/* 
This code produces the following output.

The ArrayList initially contains the following:
    The    quick    brown    fox    jumped    over    the    lazy    dog
After removing "lazy":
    The    quick    brown    fox    jumped    over    the    dog
After removing the element at index 5:
    The    quick    brown    fox    jumped    the    dog
After removing three elements starting at index 4:
    The    quick    brown    fox
*/ 

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;

void PrintValues( IEnumerable* myList );
 
int main()  {
 
       // Creates and initializes a new ArrayList.
       ArrayList* myAL = new ArrayList();
       myAL->Add( S"The" );
       myAL->Add( S"quick" );
       myAL->Add( S"brown" );
       myAL->Add( S"fox" );
       myAL->Add( S"jumped" );
       myAL->Add( S"over" );
       myAL->Add( S"the" );
       myAL->Add( S"lazy" );
       myAL->Add( S"dog" );
 
       // Displays the ArrayList.
       Console::WriteLine( "The ArrayList initially contains the following:" );
       PrintValues( myAL );
 
       // Removes the element containing "lazy".
       myAL->Remove( S"lazy" );
 
       // Displays the current state of the ArrayList.
       Console::WriteLine( "After removing \"lazy\":" );
       PrintValues( myAL );
 
       // Removes the element at index 5.
       myAL->RemoveAt( 5 );
 
       // Displays the current state of the ArrayList.
       Console::WriteLine( "After removing the element at index 5:" );
       PrintValues( myAL );
 
       // Removes three elements starting at index 4.
       myAL->RemoveRange( 4, 3 );
 
       // Displays the current state of the ArrayList.
       Console::WriteLine( "After removing three elements starting at index 4:" );
       PrintValues( myAL );
    }
 
void PrintValues( IEnumerable* myList )  {
       System::Collections::IEnumerator* myEnumerator = myList->GetEnumerator();
       while ( myEnumerator->MoveNext() )
          Console::Write( "\t{0}", myEnumerator->Current );
       Console::WriteLine();
    }

 /* 
 This code produces the following output.
 
The ArrayList initially contains the following:
        The     quick   brown   fox     jumped  over    the     lazy    dog
After removing "lazy":
        The     quick   brown   fox     jumped  over    the     dog
After removing the element at index 5:
        The     quick   brown   fox     jumped  the     dog
After removing three elements starting at index 4:
        The     quick   brown   fox

 */ 

[JScript] 
import System;
import System.Collections;

// Creates and initializes a new ArrayList.
var myAL : ArrayList = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );
myAL.Add( "jumped" );
myAL.Add( "over" );
myAL.Add( "the" );
myAL.Add( "lazy" );
myAL.Add( "dog" );

// Displays the ArrayList.
Console.WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL );

// Removes the element containing "lazy".
myAL.Remove( "lazy" );

// Displays the current state of the ArrayList.
Console.WriteLine( "After removing \"lazy\":" );
PrintValues( myAL );

// Removes the element at index 5.
myAL.RemoveAt( 5 );

// Displays the current state of the ArrayList.
Console.WriteLine( "After removing the element at index 5:" );
PrintValues( myAL );

// Removes three elements starting at index 4.
myAL.RemoveRange( 4, 3 );

// Displays the current state of the ArrayList.
Console.WriteLine( "After removing three elements starting at index 4:" );
PrintValues( myAL );

function PrintValues( myList : IEnumerable )  {
   var myEnumerator : System.Collections.IEnumerator  = myList.GetEnumerator();
   while ( myEnumerator.MoveNext() )
      Console.Write( "\t{0}", myEnumerator.Current );
   Console.WriteLine();
}
 /* 
 This code produces the following output.
 
 The ArrayList initially contains the following:
     The    quick    brown    fox    jumped    over    the    lazy    dog
 After removing "lazy":
     The    quick    brown    fox    jumped    over    the    dog
 After removing the element at index 5:
     The    quick    brown    fox    jumped    the    dog
 After removing three elements starting at index 4:
     The    quick    brown    fox
 */ 

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

ArrayList クラス | ArrayList メンバ | System.Collections 名前空間 | RemoveAt | RemoveRange | Add | Insert | カルチャを認識しないコレクションの操作の実行