- 동일한 자료형의 순차적 자료구조

- 인덱스 연산자[]를 이용하여 빠른 참조 가능

: 물리적 위치와 논리적 위치가 동일하기때문에 자료형의 크기만큼 계산하여 배열에 저장된 값을 빠르게 가져올 수 있다.

: 몇번째 요소를 가져오는 것이 배열은 빠름(LinkedList는 이런게 빠르지 않음(n번 걸림. 물리적 위치와 논리적 위치가 다르기 때문)

: 중간에 값을 추가하거나 빼는 연산은 느림. 값을 추가하거나 빼는 위치 이후의 값들을 한 칸씩 당기거나 밀어야하기 때문

- java에서는 객체 배열을 구현한 ArrayList를 많이 활용함

 

ArrayList

- new로 선언하면 32비트 컴퓨터는 하나의 인덱스당 4바이트짜리 방이 생기고 64비트는 8바이트짜리 방이 생김

  : Array와 다른점! 각 방은 null값으로 되어있음. 따라서 객체를 만들어서 각 인덱스에 넣어주어야 함!

 

객체 배열 복사하기

- System.arrayCopy(대상배열,시작포지션,목적지배열,목적지시작포시션,길이)

- 주의!! 이렇게 복사하면 주소값도 동일하게 복사되기 때문에(같은 객체를 가리키기 때문에) 둘 중 하나만 수정되어도 같이 수정된다.

- 아예 다른 주소값으로 복사하려면 객체배열을 새로 생성 후(new) 각 인덱스에 값을 직접 넣어주어야 한다.

  : 전혀 다른 객체를 가지기 때문

 

 

출처 : 패스트캠퍼스

+ Recent posts