코딩 공부/패스트캠퍼스 게임 개발 올인원

패스트캠퍼스 챌린지 27일차

잘자라는스투키 2022. 2. 19. 23:10
반응형

 [C# 프로그래밍 : 클래스 개념 꽉잡기-  컬렉션,인덱서]

 

1. 컬렉션이란?

  • 배열은 일렬로 자료 저장해야할때. 배열 선언할 때 고정된 데이터만 받을 수 있는 문제점.  예를 들어 학생들이 작년에는 100명이었지만 내년에는 90명.. 이런식으로 다를 수 있음
  • 컬렉션은 가변형데이터를 저장 삭제 검색 정렬 등등 기능 제공하는 솔루션
  • 자료구조

 

2. 컬렉션의종류

- ArrayList

  • 배열과 비슷
  • 크기가 유동적
  • arrList.Add(데이터); : 데이터 추가. 데이터형은 물론 내가 만든 스트럭쳐, 클래스도 추가 가능
ArrayList arrList = new ArrayList();
int[] arrData = {100,200,300};
ArrayList arrCopyList = new ArrayList(arrData);  //생성과 동시에 특정 데이터를 넣을 수 있음

 

- Queue

  • 순차적인 데이터처리 가능
  • FIFO 처음 들어온 데이터가 처음 나간다
  • 게임에서 순차적 AI기능 구현할 때 사용 : 달려, 달려가, 앉아, 점프 등등 순차적으로 갖다 쓸 떄?
  • queue.Dequene() : 데이터 제거하고 반환
  • queue.Enquene() : 데이터 추가. 
  • queue.Peek() : 데이터 제거 없이 반환. 맨 앞에 있는 데이터 읽어오기
  • queue.Count : 큐안에 들어 있는 데이터 개수
Queue queue = new Queue();
int[] arrData = {100,200,300};
Queue queueCopy = new Queue(arrData);

 

- Stack

  • 순차적 데이터 처리
  • LIFO(Last in First Out) : 마지막에 들어온게 처음으로 나간다
  • 뒤로가기 기능 할때 사용
  • stack.Push() : 데이터 추가
  • stack.Pop() : 데이터 제거 및 반환
  • stack.Peek() : 데이터 제거 없이 반환. 맨 앞에 있는 데이터 읽어오기
Stack stack = new Stack();
stack.Push("a");
int[] arrData ={100,200,300};
Stack stackcopy = new Stack(arrData);

 

- Hashtable

  • 키와 값이 쌍으로 구성되는 데이터
  • 창고에 박스를 쌓아놓을 때 라벨을 붙여두면 빨리 찾을 수 있는 듯이 키와 값이 함께 있기 때문에 탐색할 때 속도가빠름
  • hashTable.Keys : 해쉬테이블 내 키값 가져오기
Hashtable hashTable = new Hashtable();
hashTable.Add("name","Jack");
hashTable["weight"] = 10.8f;
Hashtable hashTableCopy = new Hashtable(){
["pos"] = 10, 
["name"] = "Jack",
["weight"] = 10.98f,
};

 

- 인덱서

  • 배열이나 컬렉션 외부 접근을 좀 더 편하게 해주는 것
  • 클래스 내 프라이빗으로배열을 만들어둠 외부에서 객체로접근 힘듬. 이때 인덱서를 이용해서 접근한다.
public int this[int index]{
get{return num[index];}
set{num[index] = value;}
}
  • 배열의 길이가 넘으면 오류가 생길때도 있는데 이런 경우 if문을 넣어서 미리 방어할 수 있음
        public string this[int index]
        {
            get {
                if(index >= 0 && index < arrayList.Count)
                    return (string)arrayList[index];
                else
                    return null;
            }
            set {
                if(index >= 0 && index < arrayList.Count)
                    arrayList[index] = value;
                else if(index == arrayList.Count)
                    arrayList.Add(value);
            }
        }

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기

#C#과유니티로배우는게임개발올인원패키지Online.

반응형