>  기사  >  백엔드 개발  >  C#에서 Array와 ArrayList의 차이점에 대한 자세한 설명

C#에서 Array와 ArrayList의 차이점에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-28 11:44:201793검색

이 글에서는 C#에서 Array와 ArrayList의 자세한 설명과 차이점을 주로 소개하고 있습니다. 필요한 친구들은

C#을 참고하세요. Array와 ArrayList의 차이점

1. Array의 사용법

  type[]  typename=new type[size];

또는

 type[]  typename=new type[]{ };

Array 유형 변수 선언과 동시에 인스턴스화되어야 합니다(초기화되면 최소한 배열 의 크기가 초기화되어야 함)

일반적으로 int[], string[]... 실제로 array array

를 선언합니다. 예:

 string [] srt=new string[]{"a","b"};

     int[] a=new int[2]; string [] srt=new string[3];

(1):typedata type은 누락될 수 없습니다. int[] a =new Array[];

(2)와는 달리 통합되어야 합니다. 배열의 크기는 누락될 수 없습니다. 그렇지 않으면 배열이 고정되어 있기 때문에 C#에서는 오류라고 생각합니다. 길이 메모리;

(3): 오른쪽 대괄호 []이며 ()가 아닙니다.

참고: 배열 배열은 add,clear, addRange.. 메소드를 제공하지 않지만 직접 설정합니다. 또는 다음과 같은

값을 가져옵니다. a[0] = 0; a[1] = 1;

2.

var arrayList = new ArrayList();

      arrayList.Add(1);
      arrayList.Add(2);
      arrayList.Add(50.0); //在.net 4.0 支持。具体为什么还没有研究 
      foreach (var array in arrayList)
      {
        Console.WriteLine(array);
      }

3. ArrayList와 Array의 변환

 var arrayList = new List<int>();
      arrayList.Add(1);
      arrayList.Add(2);
      arrayList.Add(50);

      //ArrayList 数组中的值拷贝到Array中去
      int[] array1=new int[arrayList.Count];
      arrayList.CopyTo(array1); //方法一
      int[] array2 = arrayList.ToArray(); //方法二

4. [Array와 ArrayList의 차이점]

#1. 배열형 변수는 동시에 선언해야 하며(적어도 배열의 크기는 초기화되어야 함), ArrayList만 먼저 선언해도 됩니다.

예:

int[] array = new array[3];
 或 int[] array = {1,2,3};
 或 ArrayList myList = new ArrayList();

모두 가능하지만 int[] 배열을 직접 사용하는 것은 불가능합니다.

#2. 배열은 동종 객체만 저장할 수 있는 반면 ArrayList는 이종 객체를 저장할 수 있습니다.

동형 객체는 동일한 유형의 객체를 참조합니다. 배열이 int[]로 선언되면 정수 데이터만 저장할 수 있고, string[]은 문자 데이터 단, 객체[]로 선언된 배열은 제외됩니다.

ArrayList는 박스형 Object 객체를 저장하기 때문에 다양한 유형의 데이터를 저장할 수 있습니다. 실제로 ArrayList는 내부적으로 "object[] _items;"를 사용합니다. Private 필드를 사용하여 객체를 캡슐화합니다.

#3 CLR 관리 쌍의 저장 방법


ArrayList는 항상 연속적으로 저장되지만 ArrayList는 반드시 연속적으로 저장되지는 ​​않습니다.

#4 초기화 크기


배열 객체의 초기화는 지정된 크기여야 하며, 생성 후 배열의 크기는 고정되어 있습니다.

ArrayList의 크기는 동적으로 지정할 수 있으며, 초기화 시 크기를 지정할 수도 있고 지정하지 않을 수도 있어 객체의 공간을 임의로 늘릴 수 있습니다.

#5 ArrayList는 임의의 위치에 항목을 삽입하고 삭제할 수 있지만 ArrayList는 항목을 마음대로 추가하고 삭제할 수 없습니다.

5. [Array와 ArrayList의 유사점]

#1 둘 다 인덱스를 가지고 있습니다. 즉, 인덱스를 통해 모든 항목을 직접 얻고 수정할 수 있습니다.

#2 생성된 개체는 관리되는 힙에 배치됩니다.
#3은 모두 IEnumerable 인터페이스를 구현하기 때문에 모두 스스로 열거할 수 있습니다.

6. [ArrayList의 일부 기능]

var arrayList = new List<int>(2);
 Console.WriteLine(arrayList.Capacity);
      
      int size = 2;
      for (int i = 0; i < size; i++)
      {
        arrayList.Add(i);
      }
   
      Console.WriteLine("compressed capacity:"+arrayList.Capacity);

size가 2일 때 출력 결과의 "현재 용량"은 2,

size가 3~4인 경우 "현재 용량"은 4,
크기가 5~8인 경우 "현재 용량"은 8,
크기가 9~16인 경우 "현재 용량"은 16,

실험을 통해 결론을 내릴 수 있습니다. 즉, ArrayList(ArrayList.Count)의 실제 객체 수가 자체 용량 임계값을 초과할 때마다 임계값은 자동으로 두 배가 됩니다.

 ArrayList myList = new ArrayList(5);

      for (int i = 0; i < 3; i++)
      {
        myList.Add(i);
      }
      Console.WriteLine("actual capacity:" + myList.Capacity);
      myList.TrimToSize();
      Console.WriteLine("compressed capacity:" + myList.Capacity);
      
      Console.ReadLine();

출력:

으아아아

위 내용은 C#에서 Array와 ArrayList의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.