본문 바로가기

Java/Chapter 13. 배열(Array)

(4)
[Java] 13.03 - 다차원 배열의 이해와 활용 들어가며 배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열을 가리켜 '다차원 배열'이라고 한다. 즉 2차원배열도 다차원 배열이고, 3차원 배열도 다차원 배열이다. 그러나 일반적인 프로그램에서는 2차원을 초과하는 구조의 배열을 잘 이용하지 않는다. 따라서 설명의 초점을 2차원 배열에 두고자 한다. 그러나 2차원배열을 잘 알면 3차원 배열도 다룰 수 있다. 2차원 배열의 생성과 접근 1차원 배열은 그 이름이 의미하듯이 둘 이상의 변수가 '선의 형태'로 존재하는 배열이다. 반면 2차원 배열은 다수의 변수가 '면의 형태'로 존재하는 배열이다. 위 그림에서 보이듯이 세로 길이와 가로 길이가 각각 3과 4인 int형 2차원 배열은 다음과 같이 생성 한다. int[][] arr = new int[3][4..
[Java] 13.02 - enhanced for문 들어가며 이번에 소개하는 enhanced for문은 자바 5에서 추가되었다. 그리고 지금은 많이 사용되는 반복문 중 하나가 되었다. enhanced for문의 이해와 활용 프로그램을 작성하다 보면 다음과 같이 배열에 저장된 모든 요소를 대상으로 연산, 참조, 또는 탐색을 진행하는 경우를 흔히 접할 수 있다. 배열에 저장된 값 중에서 특정 조건에 해당하는 값을 찾아라. 배열에 저장된 모든 값에 대해 12%씩 그 값을 증가시켜라. 그리고 이러한 상황에서의 문장 구성을 돕기 위해 등장한 것이 enhanced for문이다. 이는 for-each문으로도 불린다. 예를 들어서 '배열에 저장된 모든 값을 출력하라'는 요구 사항을 만족하는 for문은 다음과 같이 작성할 수 있다. int[] ar = {1, 2, 3, ..
[Java] 13.01 - 1차원 배열의 이해와 활용(2) 참조변수 선언의 두 가지 방법 다음의 참조변수 선언을 보자. 이는 앞서 소개하고 설명한 방식의 참조변수 선언이다. int[] arr; 동일한 참조변수 arr을 다음과 같이 선언할 수도 있다. int arr[]; 다음과 같이 배열을 생성하는 문장에서도 이 둘은 동일한 의미로 사용된다. int[] arr = new int[3]; // 조금 더 선호하는 방법 int arr[] = new int[3]; 배열의 참조 값과 메소드 배열도 인스턴스이므로 메소드 호출 시 참조 값의 전달이 가능하다. 예를 들어서 다음과 같이 배열의 참조 값을 인자로 전달할 수 있다. public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7}; int sum = ..
[Java] 13.01 - 1차원 배열의 이해와 활용(1) 들어가며 배열은 '자료형이 같은 둘 이상의 값'을 저장할 수 있는 메모리 공간을 의미한다. 그리고 배열은 그 구조에 따라서 '1차원 배열'과 '다차원 배열'로 나뉜다. 1차원 배열의 생성 방법 1차원 배열은 다음과 같이 정의할 수 있다. 타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간 그런데 자바는 배열도 인스턴스로 처리한다. 즉 '자바 에서는 배열도 인스턴스'이다. 그럼 다음 문장을 모자. 이는 5개의 int형 값을 저장할 수 있는 1차원 배열의 생성문이다. int[] ref = new int[5]; 위의 문장에서 등호를 기준으로 왼편, 오른편에 위치한 것은 각각 '참조변수의 선언'과 '배열의 생성'이다. int[] ref // int형 1차원 배열 인스턴스를 참조할 수 있는..