Computer Language/JAVA
[240615] Array
westwith
2024. 6. 15. 19:11
728x90
0. 김영한님의 자바 강의 듣는 공부 일지
강의 주소 :
[지금 무료] 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 | 김영한 - 인프런
김영한 | 프로그래밍에 처음 입문하는 분들을 위한 자바 강의입니다. 코드를 따라하면서 손쉽게 자바를 배울 수 있습니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 자바 입문[사
www.inflearn.com
1. 배열
- 배열 시작
package array; // 패키지 선언
public class Array1 { // 클래스 Array1 시작
public static void main(String[] args) { // main 메서드 시작
int student1 = 90;
int student2 = 80;
int student3 = 70;
int student4 = 60;
int student5 = 50;
System.out.println("학생1 점수 : " + student1);
System.out.println("학생2 점수 : " + student2);
System.out.println("학생3 점수 : " + student3);
System.out.println("학생4 점수 : " + student4);
System.out.println("학생5 점수 : " + student5);
} // main 메서드 끝
} // 클래스 Array1 끝
---
학생1 점수 : 90
학생2 점수 : 80
학생3 점수 : 70
학생4 점수 : 60
학생5 점수 : 50
- 배열의 선언과 생성
package array; // 패키지 선언
public class Array1Ref1 { //클래스 Array1Ref1 시작
public static void main(String[] args) { // main 메서드 시작
int[] students; //배열 변수 선언
students = new int[5];
// 변수 값 대입
students[0] = 90;
students[1] = 80;
students[2] = 70;
students[3] = 60;
students[4] = 50;
// 변수 값 사용
System.out.println("학생1 점수 :" + students[0]);
System.out.println("학생2 점수 :" + students[1]);
System.out.println("학생3 점수 :" + students[2]);
System.out.println("학생4 점수 :" + students[3]);
System.out.println("학생5 점수 :" + students[4]);
} // main 메서드 끝
} // 클래스 Array1Ref1 끝
---
학생1 점수 :90
학생2 점수 :80
학생3 점수 :70
학생4 점수 :60
학생5 점수 :50
- 배열 리펙토링
package array; // 패캐지 선언
public class Array1Ref2 { // 클래스 Array1Ref2 시작
public static void main(String[] args) { // main 메서드 시작
int[] students; // 배열 변수 선언
students = new int[5]; // 배열 생성
// 변수 값 대입
students[0] = 90;
students[1] = 80;
students[2] = 70;
students[3] = 60;
students[4] = 50;
// 변수 값 사용
for (int i = 0; i < students.length; i++) {
System.out.println("학생" + (i + 1) + "점수 :" + students[i]);
}
} // main 메서드 끝
} // 클래스 ArrayRef2 끝
---
학생1점수 :90
학생2점수 :80
학생3점수 :70
학생4점수 :60
학생5점수 :50
package array; // 패키지 선언
public class Array1Ref3 { // 클래스 Array1Ref3 시작
public static void main(String[] args) { // main 메서드 시작
int[] students;
students = new int[]{90, 80, 70, 60, 50}; // 배열 생성과 초기화
for (int i = 0; i < students.length; i++) {
System.out.println("학생" + (i+1) + "점수 : " + students[i]);
}
} // main 메서드 끝
} // 클래스 Array1Ref3 끝
---
학생1점수 : 90
학생2점수 : 80
학생3점수 : 70
학생4점수 : 60
학생5점수 : 50
2. 2차원 배열
package array; // 패키지 선언
public class ArrayDi0 { // 클래스 ArrayDi0 시작
public static void main(String[] args) { // main 메서드 시작
// 2X3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행(row), 열(column)
arr[0][0] = 1; //0행, 0열
arr[0][1] = 2; //0행, 1열
arr[0][2] = 3; //0행, 2열
arr[1][0] = 4; //1행, 0열
arr[1][1] = 5; //1행, 1열
arr[1][2] = 6; //1행, 2열
// 0행 출력
System.out.print(arr[0][0] + " "); // 0열 출력
System.out.print(arr[0][1] + " "); // 0열 출력
System.out.print(arr[0][2] + " "); // 0열 출력
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
// 1행 출력
System.out.print(arr[1][0] + " "); // 0열 출력
System.out.print(arr[1][1] + " "); // 0열 출력
System.out.print(arr[1][2] + " "); // 0열 출력
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
} // main 메서드 끝
} // 클래스 ArrayDi0 끝
---
1 2 3 // 0행 출력 [0][0] [0][1] [0][2]
4 5 6 // 1행 출력 [1][0] [1][1] [1][2]
- 리펙토링1 - 구조개선 : 행 출력 반복
package array; // 패키지 선언
public class ArrayDi1 { // 클래스 ArrayDi1 시작
public static void main(String[] args) { // main 메서드 시작
// 2X3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행(row), 열(column)
arr[0][0] = 1; //0행, 0열
arr[0][1] = 2; //0행, 1열
arr[0][2] = 3; //0행, 2열
arr[1][0] = 4; //1행, 0열
arr[1][1] = 5; //1행, 1열
arr[1][2] = 6; //1행, 2열
for (int row = 0; row < 2; row++) {
System.out.print(arr[row][0] + " "); // 0열 출력
System.out.print(arr[row][1] + " "); // 1열 출력
System.out.print(arr[row][2] + " "); // 2열 출력
System.out.println(); // 한 행이 끝나면 라인을 변경함
}
} // main 메서드 끝
} // 클래스 ArrayDi1 끝
---
1 2 3
4 5 6
- 리펙토링1 - 구조개선 : 열 출력 반복
package array; // 패키지 선언
public class ArrayDi2 { // 클래스 ArrayDi2 시작
public static void main(String[] args) { // main 메서드 시작
// 2X3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행(row), 열(column)
arr[0][0] = 1; //0행, 0열
arr[0][1] = 2; //0행, 1열
arr[0][2] = 3; //0행, 2열
arr[1][0] = 4; //1행, 0열
arr[1][1] = 5; //1행, 1열
arr[1][2] = 6; //1행, 2열
for (int row = 0; row < 2; row++) {
for (int colume = 0; colume < 3; colume++) {
System.out.print(arr[row][colume] + " ");
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
} // main 메서드 끝
} // 클래스 ArrayDi2 끝
---
1 2 3
4 5 6
- 리펙토링2 - 구조개선 : 초기화, 배열의 길이
package array; // 패키지 선언
public class ArrayDi3 { // 클래스 ArrayDi3 시작
public static void main(String[] args) { // main 메서드 시작
// 2X3 2차열 배열, 초기화
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
};
// 2차원 배열의 길이를 활용
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr[row].length; column++) {
System.out.print(arr[row][column] + " ");
}
System.out.println();
}
} // main 메서드 끝
} // 클래스 ArrayDi3 끝
---
1 2 3
4 5 6
- 리펙토링2 - 구조개선 : 값 입력
package array; // 패키지 선언
public class ArrayDi4 { // 클래스 ArrayDi4 시작
public static void main(String[] args) { // main 메서드 시작
// 2X3 2차원 배열, 초기화
int[][] arr = new int[4][5];
int i = 1;
//순서대로 1씩 증가하는 값을 입력한다.
for (int row = 0; row < arr.length; row++ ) {
for (int colunm = 0; colunm < arr[row].length; colunm++) {
arr[row][colunm] = i++;
}
}
// 2차원 배열의 길이를 활용
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr[row].length; column++) {
System.out.print(arr[row][column] + " ");
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
} // main 메서드 끝
} // 클래스 ArrayDi4
---
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
3. 향상된 for문
package array; // 패키지 선언
public class EnhancedFor1 { // 클래스 EnhancedFor1 시작
public static void main(String[] args) { // main 메서드 시작
int[] numbers = {1, 2, 3, 4, 5};
//일반 for문
for (int i = 0; i < numbers.length; ++i) {
int number = numbers[i];
System.out.println(number);
}
//향상된 for문
for (int number : numbers) {
System.out.println(number);
}
//for-each 문을 사용할 수 없는 경우, 증가하는 index 값 필요
for (int i = 0; i < numbers.length; ++i) {
System.out.println("number" + i + "번의 결과는 " + numbers[i]);
}
} // main 메서드 끝
} // 클래스 EnhancedFor1 끝
---
1
2
3
4
5
1
2
3
4
5
number0번의 결과는 1
number1번의 결과는 2
number2번의 결과는 3
number3번의 결과는 4
number4번의 결과는 5
4. 문제풀이
5. 정리
<오늘의 단축키>
⭐ 한 줄 복사 (ctl + D)
⭐ psvm (public static void main)
⭐ sout (systemout.println)
728x90