- 동일한 자료형의 순차적 자료구조
- 인덱스 연산자[]를 이용하여 빠른 참조 가능
: 물리적 위치와 논리적 위치가 동일하기때문에 자료형의 크기만큼 계산하여 배열에 저장된 값을 빠르게 가져올 수 있다.
: 몇번째 요소를 가져오는 것이 배열은 빠름(LinkedList는 이런게 빠르지 않음(n번 걸림. 물리적 위치와 논리적 위치가 다르기 때문)
: 중간에 값을 추가하거나 빼는 연산은 느림. 값을 추가하거나 빼는 위치 이후의 값들을 한 칸씩 당기거나 밀어야하기 때문
- java에서는 객체 배열을 구현한 ArrayList를 많이 활용함
ArrayList
- new로 선언하면 32비트 컴퓨터는 하나의 인덱스당 4바이트짜리 방이 생기고 64비트는 8바이트짜리 방이 생김
: Array와 다른점! 각 방은 null값으로 되어있음. 따라서 객체를 만들어서 각 인덱스에 넣어주어야 함!
객체 배열 복사하기
- System.arrayCopy(대상배열,시작포지션,목적지배열,목적지시작포시션,길이)
- 주의!! 이렇게 복사하면 주소값도 동일하게 복사되기 때문에(같은 객체를 가리키기 때문에) 둘 중 하나만 수정되어도 같이 수정된다.
- 아예 다른 주소값으로 복사하려면 객체배열을 새로 생성 후(new) 각 인덱스에 값을 직접 넣어주어야 한다.
: 전혀 다른 객체를 가지기 때문
출처 : 패스트캠퍼스
'Java' 카테고리의 다른 글
[Java기본] 상속1 - 문법과 사용예제 (0) | 2021.04.29 |
---|---|
[Java기본] ArrayList-객체배열 (0) | 2021.04.28 |
[Java기본] static 응용 - 싱글톤 패턴(singleton pattern) (0) | 2021.04.27 |
[Java기본] static 변수 (0) | 2021.04.27 |
[Java기본] 객체 자신을 가리키는 this (0) | 2021.04.27 |