본문 바로가기
게임 개발/C#

배열(Array), 리스트(List)

by FlowTree 2020. 2. 19.
반응형

#참고 링크 - 배열, 리스트
 https://opentutorials.org/module/1335/8677

https://opentutorials.org/module/1335/8636

배열(Array)

  • 자료형[] 변수명 = new 자료형[배열크기숫자];
  • 여러 값을 하나의 자료형으로 다룰 수 있는 타입
  • 연속된 메모리 공간으로 이루어져 있다.
  • 인덱스를 갖는다.
  • 인덱스는 0부터 시작한다.
  • 인덱스를 활용하여 값을 빠르게 조회가 가능하다.
  • 반복문과 결합하면 많은 정보도 효율적으로 처리할 수 있다.
  • 배열의 크기는 초기에 지정할 수 있고 이후 크기를 변경할 수 없다.
  • 새로운 배열을 선언하여 크기를 키우고 값을 옮겨야 한다.
  • 배열은 인덱스에 따라서 값을 유지하기 때문에 엘리먼트가 삭제되어도 빈자리(null)가 남게된다.
    (불필요한 메모리차지)
  • 배열을 이용해서 리스트를 구현한 것은 ArrayList
  • 배열 인덱스 개수는 배열변수값.Length로 이용가능

리스트(List)

  • List<자료형> 변수명 = new List<자료형>();
  • 배열처럼 여러 값을 하나의 변수에 할당할 수 있는 타입
  • 배열과 달리 저장 공간의 크기가 자유롭게 변한다.
  • 빈틈없는 데이터 적재 = 빈 엘리먼트가 없다.
  • 리스트에도 인덱스가 있다.
  • 불연속적으로 메모리 공간을 차지
  • 리스트는 사용할 데이터의 총 개수를 미리 알 수 없거나, 데이터가 실시간으로 변경되는 경우에 사용한다.
  • 검색이 좋지 않다.
  • 데이터 개수가 확실하게 정해져 있고 자주 사용된다면 배열이 효율적이다.
  • List 인덱스 개수는 리스트변수값.Count로 이용가능

 

간단 정리

구분 데이터 크기 저장 공간 크기 변경(추가, 삭제) 검색 효율
배열 정해짐 불가 효율적
리스트 안 정해짐 가능 비효율적

 

반응형

'게임 개발 > C#' 카테고리의 다른 글

var  (0) 2020.04.11
프로퍼티  (0) 2020.03.22
while  (0) 2020.03.22
foreach  (0) 2020.02.19
싱글턴 패턴, 정적 변수(static)  (0) 2020.02.19

댓글