배열과 ArrayList

JH·2022년 11월 27일
0

2022-Java-Study

목록 보기
7/10

배열

일차원 배열

동일한 자료형의 변수를 한꺼번에 순차적으로 관리할 수 있다.

  • 배열의 개수를 선언하고 사용 (Fixed length)
  • 중간에 빈 배열이 있으면 안됨 (연속된 자료)

선언

배열의 개수를 적어야 한다.
초기값을 넣지 않고 선언하면 int는 0, double은 0.0으로 초기화되어있다.

int[] arr = new int[10];
int arr[] = new int[10];

초기화

초기화할 때는 배열의 개수를 적지 않는다.

int[] arr = new int[] {0, 1, 2};
int[] arr = {0, 1, 2}; // new int[]를 생략할 수 있음

객체 배열 만들기

객체 배열은 참조 자료형(주소)를 선언한다.
배열만 생성했을 때 null로 초기화되고, 객체를 new로 생성하여 저장해야 한다.

Book[] library = new Book[5];

library[0]는 array.Book@311d617d라는 주소값을 갖게 되고
출력하려면 library.showBookInfo();

배열 복사하기

기존 배열과 같은 배열을 만들거나, 더 큰 배열을 만들 때 기존 배열 자료를 복사할 수 있다.

System.arraycopy(복사할 배열, 복사할 첫 위치, 대상 배열, 붙여넣을 첫 위치, 복사할 요소 개수) 

앝은 복사: 배열 요소의 주소를 복사하므로 값이 같이 바뀐다.

깊은 복사: 서로 다른 인스턴스 메모리 요소를 갖는다.

배열 for문으로 출력하기

for(int num: arr) {
	System.out.println(num);
}

다차원 배열

2차원 이상의 배열 (지도, 평면, 공간 등)

선언

int[][] arr = new int[][];

초기화

int[][] arr = {{1, 2, 3}, {4, 5, 6}};

사용

arr.length // 행의 개수
arr[0].length // 1행의 열 개수
arr[1].length // 2행의 열 개수

ArrayList 클래스

기존 배열은 길이를 정해서 선언하므로 부족한 경우 다시 만들어야 하는 불편함이 있다.
중간 요소가 삭제되면 나머지를 조정하는 코드를 작성해야 했다.

➡️ 자바에서 제공되는 객체 배열이 구현된 클래스이다.

ArrayList<타입> list = new ArrayList<타입>();

길이 = size()
추가 = add("")
인덱스 = get(n)

ArrayList<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("c");

for (int i=0; i<list.size(); i++) {
	System.out.println(list.get(i));
}
profile
매일 한 문제씩 풀기

0개의 댓글