ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.03.13 - List
    C# 2024. 3. 13. 22:42

    여러 개의 같은 타입의 데이터를 주고받을 때 배열(Array)을 많이 썼다.

    배열 좋긴한데 길이가 고정되어 있는 거랑, 선언할 때 길이를 정해줘야 하는 게 맘에 안 든다.

    선언만 해두고 요소를 추가하면 크기가 알아서 늘어나는 배열 없을까?

     

     

    • List

    C#에서는 List<T> 클래스를 통해서 배열처럼 인덱스를 통해 각 요소에 접근 가능한 자료구조를 제공한다.

    List는 배열과 유사하지만, 배열과 다르게 동적으로 크기가 늘어나는 특징을 가지고 있다.

     

     

    • List의 특징

    List는 배열처럼 인덱스로 List의 데이터에 접근이 가능하다.

    하지만 크기가 정해져 있는 배열과 달리, List는 크기를 벗어난 인덱스에 데이터를 추가하려고 하면, 동적으로 크기가 변한다. 

     

     

    List에 데이터를 삽입/삭제 하면 뒤 인덱스의 다른 데이터들이 다른 칸(메모리)으로 옮겨진다.

     

     

    - List를 생성하는 방법

    List<자료형> 객체_이름 = new List<자료형>();

     

     

    - List에 데이터를 추가하기(Add)

    객체_이름.Add( 넣을_데이터 )

    myList에 인덱스로 접근하고 있다

     

    Add는 List의 가장 뒤의 인덱스에 데이터를 추가해준다.

     

     

    - List에 포함된 요소 수 반환(Count)

    객체_이름.Count

     

     

    - List의 요소 제거(Remove, RemoveAt)

    객체_이름.Remove( 특정_데이터 )        // List에서 맨 처음 발견되는 특정_데이터 제거
    객체_이름.RemoveAt( 인덱스 )              // List의 지정된 인덱스의 요소 제거

     

    Remove로 2번 인덱스에 있던 "데이터1"을 제거했지만, 뒤의 데이터가 빈 자리를 채우면서 RemoveAt(2)로 2번 인덱스의 데이터를 지울 때 2번 인덱스로 옮겨진 "데이터3이 제거되었다.

     

     

    - List의 요소 삽입(Insert)

    객체_이름.Insert(인덱스, 데이터)    //List의 지정된 인덱스에 데이터를 삽입

     

     

    - List의 요소 모두 제거(Clear)

    객체_이름.Clear()

     

     

    - 현재 List가 크기를 조정하지 않고 보유할 수 있는 요소 수(용량) 반환(Capacity)

    객체_이름.Capacity

     

    빈 List의 용량은 0이다.

     

    List에 데이터를 추가했더니 용량이 4로 늘어났다.

     

    데이터를 인덱스 범위를 벗어난 곳에 추가하려 할때마다 용량은 2배가 된다.

     

    한번 늘어난 List는 요소를 모두 제거하더라도 용량이 유지된다. (메모리 공간을 차지함)

     

    'C#' 카테고리의 다른 글

    2024.03.15 - IEnumerable, IEumerator  (0) 2024.03.14
    2024.03.13 - LinkedList  (0) 2024.03.14
    2024.03.12 - this, this 생성자  (0) 2024.03.12
    2024.03.12 - 큐(Queue)  (0) 2024.03.12
    2024.03.12 - 스택(Stack)  (0) 2024.03.12
Designed by Tistory.