https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
해당 자바 스터디는 남궁성님의 자바의 정석 기초편을 기반으로 작성한 스터디 기록입니다.
배열
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
배열을 다루기 위해서는 참조변수가 필요하다
배열을 생성하면 배열을 다루기 위한 참조변수가 만들어진다
배열은 한 번 생성하면 길이 변경이 불가능한 상수이다 (배열이름.length)
- 배열의 초기화 5-5
int[] score = new int[5]; //길이가 5인 int형 배열 생성
score[0] = 50;
score[1] = 60;
score[2] = 70;
score[3] = 80;
score[4] = 90;
배열은 기본적으로 기본값으로 자동 초기화된다
배열 초기화 방법
int[] score = new int[]{50, 60, 70, 80, 90};
int[] score = {50, 60, 70, 80, 90}; //new int[] 생략 가능
- 배열의 출력 5-6
int[] iArr = {100, 95, 80, 70, 60}; //배열을 가리키는 참조 변수 iArr의 값을 출력한다
System.out.println(iArr); // iArr의 주소가 출력된다
for(int i = 0; i < iArr.length; i++) { //배열의 요소르르 순서대로 하나씩 출력
System.out.println(iArr[i]);
}
Sysytem.out.println(Arrays.toString(iArr)); //배열 iArr의 모든 요소 출력
- toString은 배열의 내용을 문자로 바꿔준다는 뜻
2차원 배열 => 1차원 배열이 여러 개 모인 것
2차원 배열이 여러개 모인 것 => 3차원 배열
int[][] score = new int[4][3]; //4행 3열의 2차원 배열을 생성한다
//이차원 배열일 경우 이중반복문을 작성해주어야 한다
String 클래스
char[]와 메서드(기능)을 결합한 것
문자배열을 그냥 쓰는 것보다는 String 클래스를 쓰는 편이 훨씬 편리
String클래스는 내용을 변경할 수 없다(읽기만 가능)
a+b를 했을 경우 ab가 되는 것이 아니라
ab라는 새로운 것이 만들어주고 a 참조변수의 주소가 달라지게 된
print(a)를 하게 되면 문자열 ab가 출력
⇒ 기존의 문자열이 바뀌는 것이 아니라 새로운 문자열이 만들어지는 것
String클래스의 주요 메서드
public static void main (String[] args) {
String str = "ABCDE"; //str에서 C를 출력하고자 한다
char ch = str.charAt(2); //해당 코드를 이용해 str의 index가 2인 C출력
String str2 = str.substring(1, 4) //index 1~3까지 출력 => BCD가 출력된다
String str3 = str.substring(1); //끝나는 index 생략 시 str.length와 동일 / 시작부터 끝 문자까지 모두 출력 => BCDE출력
System.out.println(ch);
System.out.println(str2);
System.out.println(str3);
}
Arrays로 배열 다루기 ( 문자열의 비교와 출력 - equals(), toString() )
int[] arr = {0, 1, 2, 3, 4};
int[][] arr2D = {{11, 12}, {21, 22}}; //2차원 배열
System.out.println(Arrays.toString(arr)); //[0, 1, 2, 3, 4]
System.out.println(Arrays.deepToString(arr2D)); //[[11, 12], [21, 22]]
2차원 이상인 배열일 경우
Arrays.deepToStrig(배열이름)
String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); //false
System.out.println(Arrays.deepEquals(str2D, str2D2)); //true
2차원 이상인 배열을 비교하는 경우
Arrays.deepEquals(배열이름, 배열이름)
'스터디 > java' 카테고리의 다른 글
자바 독학 [자바의 정석] : 스터디 기록 2 (0) | 2023.09.15 |
---|---|
Chat GPT를 활용하여 Java 기초 공부하기 (0) | 2023.09.14 |
자바 리듬게임 만들기 ( 7강 ) (0) | 2023.08.13 |
자바 리듬게임 만들기 ( 4 - 6 강 ) (0) | 2023.08.06 |
자바 리듬게임 만들기 ( 1 - 3강 ) (0) | 2023.07.29 |