ArrayList.TrimToSize 方法
将容量设置为 ArrayList 中元素的实际数目。
**命名空间:**System.Collections
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Overridable Sub TrimToSize
用法
Dim instance As ArrayList
instance.TrimToSize
public virtual void TrimToSize ()
public:
virtual void TrimToSize ()
public void TrimToSize ()
public function TrimToSize ()
异常
异常类型 | 条件 |
---|---|
ArrayList 为只读。 - 或 - ArrayList 具有固定大小。 |
备注
如果不向集合中添加新元素,则此方法可用于最小化集合的内存系统开销。
若要将 ArrayList 重置为它的初始状态,请在调用 TrimToSize 之前调用 Clear 方法。截去空 ArrayList 会将 ArrayList 的容量设置为默认容量。
此方法的运算复杂度为 O(n),其中 n 是 Count。
示例
下面的代码示例演示如何调整 ArrayList 中未使用的部分以及如何清除 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")
' Displays the count, capacity and values of the ArrayList.
Console.WriteLine("Initially,")
Console.WriteLine(" Count : {0}", myAL.Count)
Console.WriteLine(" Capacity : {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
' Trim the ArrayList.
myAL.TrimToSize()
' Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After TrimToSize,")
Console.WriteLine(" Count : {0}", myAL.Count)
Console.WriteLine(" Capacity : {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
' Clear the ArrayList.
myAL.Clear()
' Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After Clear,")
Console.WriteLine(" Count : {0}", myAL.Count)
Console.WriteLine(" Capacity : {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
' Trim the ArrayList again.
myAL.TrimToSize()
' Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After the second TrimToSize,")
Console.WriteLine(" Count : {0}", myAL.Count)
Console.WriteLine(" Capacity : {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
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 'PrintValues
End Class
' This code produces the following output.
'
' Initially,
' Count : 5
' Capacity : 16
' Values: The quick brown fox jumped
' After TrimToSize,
' Count : 5
' Capacity : 5
' Values: The quick brown fox jumped
' After Clear,
' Count : 0
' Capacity : 5
' Values:
' After the second TrimToSize,
' Count : 0
' Capacity : 16
' Values:
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" );
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "Initially," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After TrimToSize," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Clear the ArrayList.
myAL.Clear();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After Clear," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList again.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After the second TrimToSize," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
Initially,
Count : 5
Capacity : 16
Values: The quick brown fox jumped
After TrimToSize,
Count : 5
Capacity : 5
Values: The quick brown fox jumped
After Clear,
Count : 0
Capacity : 5
Values:
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
*/
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
// Creates and initializes a new ArrayList.
ArrayList^ myAL = gcnew ArrayList;
myAL->Add( "The" );
myAL->Add( "quick" );
myAL->Add( "brown" );
myAL->Add( "fox" );
myAL->Add( "jumped" );
// Displays the count, capacity and values of the ArrayList.
Console::WriteLine( "Initially," );
Console::WriteLine( " Count : {0}", myAL->Count );
Console::WriteLine( " Capacity : {0}", myAL->Capacity );
Console::Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList.
myAL->TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console::WriteLine( "After TrimToSize," );
Console::WriteLine( " Count : {0}", myAL->Count );
Console::WriteLine( " Capacity : {0}", myAL->Capacity );
Console::Write( " Values:" );
PrintValues( myAL );
// Clear the ArrayList.
myAL->Clear();
// Displays the count, capacity and values of the ArrayList.
Console::WriteLine( "After Clear," );
Console::WriteLine( " Count : {0}", myAL->Count );
Console::WriteLine( " Capacity : {0}", myAL->Capacity );
Console::Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList again.
myAL->TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console::WriteLine( "After the second TrimToSize," );
Console::WriteLine( " Count : {0}", myAL->Count );
Console::WriteLine( " Capacity : {0}", myAL->Capacity );
Console::Write( " Values:" );
PrintValues( myAL );
}
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.
Initially,
Count : 5
Capacity : 16
Values: The quick brown fox jumped
After TrimToSize,
Count : 5
Capacity : 5
Values: The quick brown fox jumped
After Clear,
Count : 0
Capacity : 5
Values:
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
*/
import System.*;
import System.Collections.*;
public class SamplesArrayList
{
public static void main(String[] args)
{
// 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");
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine("Initially,");
Console.WriteLine(" Count : {0}", (Int32)myAL.get_Count());
Console.WriteLine(" Capacity : {0}", (Int32)myAL.get_Capacity());
Console.Write(" Values:");
PrintValues(myAL);
// Trim the ArrayList.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After TrimToSize,");
Console.WriteLine(" Count : {0}", (Int32)myAL.get_Count());
Console.WriteLine(" Capacity : {0}", (Int32)myAL.get_Capacity());
Console.Write(" Values:");
PrintValues(myAL);
// Clear the ArrayList.
myAL.Clear();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After Clear,");
Console.WriteLine(" Count : {0}", (Int32)myAL.get_Count());
Console.WriteLine(" Capacity : {0}", (Int32)myAL.get_Capacity());
Console.Write(" Values:");
PrintValues(myAL);
// Trim the ArrayList again.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine("After the second TrimToSize,");
Console.WriteLine(" Count : {0}", (Int32)myAL.get_Count());
Console.WriteLine(" Capacity : {0}", (Int32)myAL.get_Capacity());
Console.Write(" Values:");
PrintValues(myAL);
} //main
public static void PrintValues(IEnumerable myList)
{
IEnumerator objMyEnum = myList.GetEnumerator();
while (objMyEnum.MoveNext()) {
Object obj = objMyEnum.get_Current();
Console.Write(" {0}", obj);
}
Console.WriteLine();
} //PrintValues
} //SamplesArrayList
/*
This code produces the following output.
Initially,
Count : 5
Capacity : 16
Values: The quick brown fox jumped
After TrimToSize,
Count : 5
Capacity : 5
Values: The quick brown fox jumped
After Clear,
Count : 0
Capacity : 5
Values:
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
*/
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" );
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "Initially," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After TrimToSize," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Clear the ArrayList.
myAL.Clear();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After Clear," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
// Trim the ArrayList again.
myAL.TrimToSize();
// Displays the count, capacity and values of the ArrayList.
Console.WriteLine( "After the second TrimToSize," );
Console.WriteLine( " Count : {0}", myAL.Count );
Console.WriteLine( " Capacity : {0}", myAL.Capacity );
Console.Write( " Values:" );
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.
Initially,
Count : 5
Capacity : 16
Values: The quick brown fox jumped
After TrimToSize,
Count : 5
Capacity : 5
Values: The quick brown fox jumped
After Clear,
Count : 0
Capacity : 5
Values:
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0
请参见
参考
ArrayList 类
ArrayList 成员
System.Collections 命名空间
Clear
Capacity
Count