String 클래스 특징
▶ += 또는 + 연산을 지양해야한다.
아래와 같은 연산을 한다면 한 문자열에 1234 가 합쳐지는 문자열이 되는 것이 아닌
+ 연산을 할때마다 새로운 객체를 만들어서 연산을 수행하기 때문에
아래의 코드의 경우 1, 12, 123, 1234 가 각각 String Constant Pool 에 새로운 리터럴로 저장되며
아무도 참조하지 않은 리터럴은 GC(Garbage Collection)가 회수해가는 과정을 거치게 되고 이러한 과정은 성능 저하의 원인이 된다.
String str = "1";
str += "2";
str += "3";
str += "4";
최대공약수 계산
// 최대공약수 계산
public int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
ArrayList
▶ ArrayList 에 값 추가, 추출, 삭제할 때
List<Integer> answer = new ArrayList<>();
// List 에 값 추가
answer.add(1);
// List 에 값 추출 => get(List 순번)
answer.get(0);
// List 에 값 삭제 => remove(List 순번)
answer.remove(2);
Arrays.asList
▶ 배열을 List 에 담아야 할 때 사용하는 메서드, 배열의 순번을 알아야 할 때 주로 사용 가능하다.
String[] arr = {"code", "date", "maximum", "remain"};
List<String> list = Arrays.asList(arr);
Arrays.sort();
▶ 배열을 정렬한다.
String[] arr = new String[];
// 오름차순 정렬
Arrays.sort(arr);
// 내림차순 정렬
Arrays.sort(arr, Comparator.reverseOrder());
toArray(new String[0])
▶ ArrayList 를 배열로 재 선언한다.
List<String> list = new ArrayList<>();
// ArrayList를 배열로 재 선언한다.
String[] arr1 = list.toArray(new String[0]);
String[] arr2 = list.toArray(String[]::new);
indexOf("")
▶ List 의 특정 값의 순번을 확인하려고 할 때 사용하는 메서드, int 형식으로 값이 떨어진다.
// 순번을 뽑고, 없으면 -1 출력
int index = list.indexOf("maximum");
Map 데이터 전부 가져오는 방법
for( String key : map.keySet() ){
System.out.println("키 : " + key + ", 값 : " + map.get(key));
}
Map 값 조회 후 없으면 디폴트값 설정
▶ getOrDefault("비교값", "default 값") ← map 에서 key 를 대상으로 값을 조회 후 없으면 default 값 출력
// map 에서 key 를 대상으로 값을 조회 후 없으면 default 값 출력
map.put(stages[i], map.getOrDefault(stages[i], 0)+1);
toString(), String.valueOf() 의 차이
// valueOf 는 데이터가 null 일 때 "null" 이라는 문자열로 처리
String sk = String.valueOf(skip);
// toString 은 데이터가 null 일 때 Null PointerException(NPE)을 발생시킴
String sk = skip.toString();
Arrays.toString
▶ 배열의 모든 내용을 그대로 출력한다.
ex) System.out.println(checkBurger) => [1, 3, 2, 1, 2, 1, 3, 1, 2]
int[] arr = new int[10];
// 배열의 내용 출력하기
String checkBurger = Arrays.toString(arr);
배열 자르기
▶ Arrays.copyOfRange(배열, 여기에서부터, 여기까지) 잘라서 사용한다.
String[] str_list = new String[10];
// 해당 배열을 0부터 5까지 배열로 자른다
Arrays.copyOfRange(str_list, 0, 5);
배열 늘리기
▶ Arrays.copyOf(배열, 길이) 잘라서 사용한다.
String[] str_list = new String[10];
// 해당 배열을 5까지 늘린다.
Arrays.copyOf(str_list, 5);
Collection.sort()
▶ Collection.sort(정렬할 리스트); || Collection.sort(정렬할 리스트, Collections.reverseOrder());
List<String> common = new ArrayList<>();
// 기본 기준 정렬
Collections.sort(common);
// 반대로 정렬
Collections.sort(common, Collections.reverseOrder());
출처
- Barbera - https://barbera.tistory.com/45
- 오월의 코딩일지 - https://programmer-may.tistory.com/154
'코딩 테스트' 카테고리의 다른 글
프로그래머스) 햄버거 만들기 Lv1 (2) | 2024.02.14 |
---|---|
프로그래머스) 달리기 경주 Lv1 (0) | 2024.02.12 |
프로그래머스) [PCCE 기출문제] 10번 / 데이터 분석 Lv1 (2) | 2024.02.11 |
프로그래머스) [PCCP 기출문제] 1번 / 붕대 감기 Lv1 (0) | 2024.02.09 |
프로그래머스) 올바른 괄호 Lv2 (0) | 2024.02.08 |