728x90
- ArrayList : 내부적으로 배열을 사용
- LinkedList : 링크 포인터를 사용
- List<T> : 제네릭 타입
- 배열의 특징
- 생성 시 사용할 공간을 미리 할당한다.
- 인덱스를 사용 데이터 접근에 빠르다.
- 데이터의 크기를 변경하지 못한다.
- 리스트의 특징
- 데이터의 추가 삭제가 자유롭다.
- 생성 시 크기를 지정하지 않는다.
- 리스트를 다른 말로 Dynamic Array라고 부른다.
- ArrayList의 특징
- 데이터의 크기가 정해져 있지 않고, 동적으로 삽입과 삭제가 가능
- 데이터 타입에 관계 없이 삽입이 가능(object 타입)
- 배열보다 속도가 느리다
- ArrayList.Insert(int index, object value);
list.Insert(3,4);
- ArrayList.RemoveAt(int index);
list.RemoveAt(4);
list.Remove(4); //값을 찾아서 삭제
-ArrayList.Count;
for(int i = 0; i < list.Count; i++)
{
Console.WriteLine((i + 1) + "번째 : " + list[i]);
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_ArrayList
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("문자열");
list.Add(100);
list.Add(true);
list.Insert(2, 200);
for(int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
}
}
}
- 형 변환 시 박싱/언박싱 발생
박싱(Boxing) : 값 형식을 참조 형식으로 변환하는 것
언박싱(Unboxing) : 참조 형식을 값 형식으로 변환하는 것
int n = 100;
object o = n;
Int b = (int)o;
- List<T>
- 저장할 데이터 타입을 T에 인자값으로 넘긴다.
- List<int>, List<double>, List<Music>, List<string[]>
List<string> MusicList = new List<string>();
MusicList.Add("좋은날");
MusicList.Add("귀로");
MusicList.Add("아무노래");
MusicList.Add("ON");
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_ArrayList
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
list.Add("슬램덩크");
list.Add("드래곤볼");
list.Add("나루토");
list.Insert(0, "데스노트");
list.RemoveAt(2);
list.Remove("나루토");
for(int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
}
}
}
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 선형 자료구조 - 스택(Stack) (0) | 2021.12.26 |
---|---|
C# 선형 자료구조 - 연결리스트(LinkedList) (0) | 2021.12.25 |
C# 선형 자료구조 - 배열 (1) | 2021.12.25 |
C# 자료구조 Data Structure (0) | 2021.12.25 |
C# 스레드 Thread (0) | 2021.12.24 |