[Section 1] Java 기초(4)

현이·2023년 2월 22일
0
post-thumbnail

사진은 프티 트리아농 안의 '왕비의 촌락' 마리 앙투아네트의 서민 체험?

코테 연습 언어로 C++에 익숙해져 있어서, 벡터를 쓰느라 자바의 배열 개념을 오랜만에 보니 낯설었다. 선언, 초기화부터 새롭게 다시 배우는 느낌으로 공부했다. length, arraycopy 등의 메서드들도 계속 연습하면서 체득시켜야될 것 같다.




배열(Array)

  • 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조

배열

//방법 1
String[] artist = new String[5];

//방법2
String[] artist = newString[]{"Courbet", "Dali", "Manet", "Renoir", "Rodin"};
  • 배열 이름은 참조 변수 (주소값만 가짐)
  • 배열의 길이 : artist.length
  • 배열 내용 보기 : System.out.println(Arrays.toString(artist));

2차원 배열

//방법 1
int[][] kcal;
kcal = new int[31][3];

//방법 2
int[][] kcal = new int[31][3];

//초기화
int[][] kcal = { 
	{ 1982, 2098, 2130 }, 
	{ 2242, 2431, 2198 }, 
	{ 2365, 1997, 1932 },	
	...
	{ 2278, 2391, 2006 }
};
  • 외부 배열의 각 요소는 내부 배열의 주소값을 저장

    -> 윗 줄 코드는 주소값 목록 출력
    -> 아랫 줄 코드는 0행 요소들의 값 출력

가변 배열

  • 다차원 배열에서 마지막 차수 배열의 크기를 고정하지 않은 배열
int[][] ages = new int[5][];

//이렇게 할당
ages[0] = new int[5];
ages[1] = new int[6];

//생성하고 바로 초기화
int[][] ages = {
	{ 30, 32, 39, 59, 23 },
	{ 31, 41, 52, 56, 72, 13 },
	{ 45, 32, 84, 23, 13, 42, 55 },
	{ 23, 41, 62, 64, 23, 51, 67, 98 },
	{ 13, 14, 17, 84, 52, 37, 68, 66, 33 }
};

+)

  • Enhanced for문으로 배열 순회는 가능⭕
    But, 배열의 값 수정은 ❌
  • 배열 복사 메서드 : System.arraycopy(복사할 배열, 복사 시작할 인덱스, 붙여넣을 배열, 붙여넣기 시작할 인덱스, 복사할 인덱스 개수);

0개의 댓글