이 글은 "Java의 정석 (남궁 성 지음)"을 읽고 주관적으로 요약한 글입니다.
※ 요약
- 배열
- 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
- 배열의 선언과 생성
- int[] score; (메모리를 할당하지 않은 상태)
- int[] score = new int[3];
- int[] socre = int[]{1, 2, 3};
- int[] score = {1,2,3};
- 안되는 케이스
int[] score;
score = {1,2,3}; - 기본값인 0으로 초기화
- 배열의 길이
- 범위 : 0 ~ 약 20억
- 변수로 길이 선언 가능
- 배열이 길이가 0인 경우
- main args에 아무것도 들어오지 않을 때
- JVM이 args를 길이 0인 배열로 생성하여 args.length가 0이므로, null인지 검사할 필요가 없음 - 배열의 길이는 JVM의 별도로 관리
- 배열 출력
- Arrays.toString
- "[요소1, 요소2, ... 요소n]" 형식의 문자열로 변경 - 배열의 값 출력
- 타입@주소
- I@14318bb : 1차원 int형 @ 배열의 내부주소 - char배열 출력
- println으로 출력시, 각 요소가 구분자 없이 그대로 출력
- 예제
char[] charArr = {'a','b','c','d'};
System.out.println(charArr); -> abcd
- Arrays.toString
- 배열 복사
- System.arraycopy(num, 0, newNum, 0, num.length)
- num의 0부터 newNum의 0으로 num.length만큼 복사
- System.arraycopy(num, 0, newNum, 0, num.length)
- String배열
- String[] str = new String[3];
- 기본값은 null
- 특별히 String 클래스만 간략한 표현이 허용?
- String[] name = new String[3];
- name[0] = "Kim";
cf. name[0] = new String("Kim");
- char배열 & String클래스
- String클래스는 char배열에 여러 기능(메서드)을 추가하여 확장
- String객체는 immutable
- 값을 바꾸려면 새로운 객체를 만들어야함(연산자)
- String클래스의 주요 메서드
- charAt(index) : 특정 인덱스 문자
- length() : 길이
- substring(from, to) : to는 포함되지 않음
- equals() : 같은 문자열 값인지 확인
- toCharArray() : char[]로 변경
- 다차원 배열
- int[][] arr;
- for문
for (int[] tmp : scope){
for (int i : tmp){ - 가변 배열
- 마지막 차수의 길이는 지정하지 않고, 나중에 생성 가능
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 17장 - 정렬 (0) | 2021.08.06 |
---|---|
[쉽게 배우는 데이터 통신과 컴퓨터 네트워크](요약)[Chapter-3] 네트워크 기술 (0) | 2021.08.06 |
[Java의 정석][Chapter-4] 조건문과 반복문 (0) | 2021.08.05 |
[파이썬 알고리즘 인터뷰][트라이] 팰린드롬 페어 (0) | 2021.08.05 |
[파이썬 알고리즘 인터뷰][트라이] 트라이 구현 (0) | 2021.08.05 |