Dazzling 개발 노트
[JAVA] 코딩테스트 주요 문법 본문
주요 키워드
extends
- 클래스 상속 시 사용
- 클래스 상속에만 사용, 인터페이스 상속 시 미사용
implements
- 인터페이스 구현 시 사용
- 클래스가 인터페이스의 모든 추상 메서드를 구현하도록 함
- 여러 인터페이스 나열 가능
- 클래스가 인터페이스를 구현할 때 사용, 클래스 상속 시 미사용
throws
- 메서드나 생성자에서 발생할 수 있는 예외 선언 시 사용
라이브러리
import java.util.*;
import java.io.*;
Arrays
int arr[] = {10, 8,11, 2, 3, 0};
// 오름차순 정렬
Arrays.sort(arr);
// 내림차순 정렬
Arrays.sort(arr, Collections.reverseIrder());
// 일부만 정렬 : 0~4만 정렬
Arrays.sort(arr, 0, 4);
// 배열을 리스트로 변환
List list = Arrays.asList(arr);
// 배열의 특정 범위 자르기
int tmp[] = Arrays.copyOfRange(arr, 0, 3);
ArrayList
ArrayList<String> list = new ArrayList<>();
list.add("java");
list.add(0, "java"); // 0 인덱스에 java 삽입
list.set(1, "C++");
list.remove(1);
list.contains("java"); // true, false로 반환
list.indexOf("java"); // 존재 시 인덱스 반환
for(int i = 0; i < list.size(); i++) {
list.get(i).intValue();
}
Iterator it = list.iterator();
// 인덱스 오름차순 순회
while (it.hasNext()) {
...
}
// 인덱스 내림차순 순회
while (it.hasPrevious()) {
...
}
Sort
// 1차원 배열 오름차순
Arrays.sort(arr, (o1, o2) -> o1 - o2);
// 1차원 배열 내림차순
Arrays.sort(arr, (o1, o2) -> o2 - o1);
// 2차원 배열 오름차순
Arrays.sort(arr, (o1, o2) -> {
if (o1[0] == o2[0])
return o1[1] - o2[1];
else
return o1[0] - o2[0];
});
// 2차원 배열 내림차순
Arrays.sort(arr, (o1,o2) -> {
if (o1[0] == o2[0])
return o2[1] - o1[1];
else
return o2[0] - o1[0];
});
String
String str = "Hello World";
// 문자열 자르기
str.split(" ");
// 문자열 자르기 : 0 ~ 5까지 자르기
str.substring(0,5);
// i번째 글자
str.charAt(i);
// 문자열을 char 배열로 변환
char[] strArr = str.toCharArray();
// 문자열을 String 배열로 변환
String[] strArr = str.split("");
// 대문자로 변경
str.toUpperCase();
// 소문자로 변경
str.toLowerCase();
// A가 B로 시작하는지 확인
A.startsWith(B)
// A가 B로 종료하는지 확인
A.endWith(B)
// A가 B를 포함하는지 확인
A.contains(B)
HashMap
// 선언
HashMap<Integer, String> map = new HashMap<>();
// key value 추가
map.put(11, "java");
// map 내 key로 값 조회
map.get(11);
// map 내 key 존재 여부 확인
map.containsKey(0);
// 특정 키가 없으면 기본값 반환
map.getOrDefault(10, 0); // 10이 없으면 0 반환
// map 순회
for (int key : map.keySet()){
map.get(key);
}
Queue
Queue<Integer> q = new LinkedList<>();
q.add(1);
q.poll();
q.clear();
q.isEmpty();
PriorityQueue
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
PriorityQueue<Integer> pq = PriorityQueue<Integer>(Collections.reverseOrder());
pq.add(1);
pq.poll();
pq.peek();
pq.remove();
Math
Math.max(100, 500); //500
Math.min(100, 500); //100
// 반올림
Math.round(10.0); //10
Math.round(10.4); //10
Math.round(10.6); //11
// 올림
Math.ceil(10.0); //10
Math.ceil(10.4); //11.0
Math.ceil(10.6); //11.0
// 내림
Math.floor(10.0); //10
Math.floor(10.4); //10.0
Math.floor(10.6); //10.0
// 절대값
Math.abs(10); //10
Math.abs(-10); //10
// 제곱
Math.pow(5,2); //25
Math.pow(2,10); //1024
// 제곱근
Math.sqrt(4); //2