방카@Dev
[Java]코딩테스트용 주요 메서드 모음 본문
0. 라이브러리
import java.util.*;
import java.io.*;
1. 변수 선언
String[] arr1 = new String[5];
int[] arr2 = {1,2,3};
int N = 3;
int[] arr3 = new int[N];
2.Arrays
int arr[] = {10, 8, 11, 2, 3, 0};
// 1. 오름차순 {0, 2, 3, 8, 10, 11}
Arrays.sort(arr1);
// 2. 내림차순 {11, 10, 8, 3, 2, 0}
Arrays.sort(arr1, Collections.reverseOrder());
// 3. 일부만 정렬 {2, 8, 11, 10, 3, 0} (0~4만 정렬)
Arrays.sort(arr1, 0, 4)
// 4. 오름차순 정렬하면 binary search로 특정 값을 찾을 수 있다.
Arrays.binarySearch(arr1, 2);
// 5. 배열을 어레이리스트로 변환할 떼!
List list = Arrays.asList(arr1);
// 6. 배열의 특정 범위 자르기
int tmp[] = Arrays.copyOfRange(arr1, 0, 3);
3. length / length() / size()
- length: 배열의 길이 (arr.length)
- length(): String related object (str.length())
- size(): Collections object (list.size())
// 1. length
int[] arr = new arr[3];
System.out.println(arr.length);
// 2. length()
String str = "java";
System.out.println(str.length());
// 3. size()
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.size());
4. String
String str = "hello world";
//길이 반환
str.length();
//빈문자열 체크
str.isEmpty();
//문자 찾기
str.charAt(0); // 'h' -> 문자 반환
str.indexOf("e"); //1 -> 인덱스 반환
str.lastIndexOf("r"); // 8->마지막으로 문자가 속한 인덱스 반환
// 문자 자르기
str.substring(0, 5); //인덱스 0 이상 5미만 위치의 문자열 반환
str.substring(3); //인덱스 3 이상 위치의 문자열 반환
for(int i = 0; i < str.length(); i++) str.charAt(i);
//문자 치환(바꾸기)
//replace([기존문자],[바꿀문자])
str.replace('e','o'); // 모든 [기존문자]를 [바꿀문자]로 치환
//문자 반복
str.repeat(k) //k번 반복
//문자 비교
/*
str과 "bye"가 같으면 0
str이 "bye"보다 사전순으로 앞이면 -1
str이 "bye"보다 사전순으로 뒤면 1
*/
str.compareTo("bye")
//문자 포함 여부 판단
str.contains("hell");
//문자열을 배열로 만들고 싶을 때
String str = "12345";
String[] Arr = str.split("");
char[] cRsp = str.toCharArray();
//문자 <-> 숫자 변환
Integer.parseInt("100") //문자열 "100"을 숫자 100으로 변환
Integer.toString(100) //숫자 100을 문자열 "100"으로 변환(1)
String.valueOf(100) //숫자 100을 문자열 "100"으로 변환(2)
Character.getNumericValue(char변수)
// 대소문자 여부 확인(Character 객체)
Character.isUpperCase(char변수);
Character.isLowerCase(char변수);
// 대소문자 변경
str = str.toUpperCase(); // HELLO WORLD
str = str.toLowerCase(); // hello world
// 접미사, 접두사
str.startsWith("특정문자"); // Boolean 타입
str.endsWith("특정문자");
// 한번 쓴 문자열은 변경 불가. substring 이용해서 새로운 변수로 선언해야함
String name="starfucks";
String newname=name.substring(0,4)+'b'+name.substring(5); // starbucks
5. StringBuilder
StringBuilder sb = new StringBuilder();
sb.append("A"); //문자열 추가하기
sb.insert(1,"B"); //중간에 문자열 삽입하기
sb.delete(0,1); //문자열 삭제하기(~부터 ~까지)
sb.reverse(); // 문자열 뒤집기
sb.toString(); // 문자열 변환
String str = sb.append("A").append("B").append("C").append("D")
.insert(4,"Java").delete(4,8).reverse().toString(); //메소드 체이닝
6. HashMap
// 1. 선언
HashMap<String, Integer> hm = new HashMap<>();
// 2. key-value 넣기
hm.put("java", 0);
// 3. 키로 값 가져오기
hm.get("java");
// 4. containsKey()로 존재유무 확인
if (!hm.containsKey("java")) hm.put("java", 1);
// 5. 특정 키가 없으면 값 설정, 있으면 기존 값 가져오는 함수
hm.put("java", hm.getOrDefault("java", 3);
// 6. keySet() 함수로 맵 순회
for(String key : hm.KeySet()) {
hm.get(key);
}
7. ArrayList
// 선언
ArrayList<String> list = new ArrayList<>();
// 삽입
list.add("java"); // {"java"}
list.add(0, "python"); // {"python", "java"} (0번째 인덱스에 삽입)
// 수정
list.set(1, "kotlin"); // {"python", "kotlin"}
// 삭제
list.remove(1); // {"python"}
// 가져오기
list.get(1);
// 값 존재 유무 확인
list.contains("java"); // false
list.indexOf("python"); // 0 존재하면 인덱스 리턴
// 리스트 길이
list.size();
//리스트에 다른 리스트 요소가 전부 포함되어 있는지 여부 체크
list.containsAll(list2);
//문자열 타입 배열을 list로 변환
String[] temp = {"apple","banana","lemon"};
List<String> list = new ArrayList<>(Arrays.asList(temp));
//list를 문자열 배열로 변환
List<String> list = new ArrayList<>();
String[] temp = list.toArray(new String[list.size()]);
8. Collections 관련 메소드
int[] temp = {1,2,3,10,20};
List<Integer> list = new ArrayList<>(Arrays.asList(arr));
//정수형 list 원소 중 최대, 최소값
Collections.max(list);
COllections.min(list);
//List 정렬
Collections.sort(list); //오름차순(ASC)
Collections.sort(list, Collections.reverseOrder()); //내림차순 (DESC)
//List 뒤집기
Collections.reverse(list);
9.Queue
// 1. 선언
Queue<Integer> q = new LinkedList<>(); // linked list로 선언해야함
// 2. 삽입
q.add(10); // {10}
q.offer(2); // {10, 2}
// 3. 프론트값 반환
q.peek(); // 10
// 4. 삭제
q.remove();
q.poll();
// 5. 초기화
q.clear();
// 6. 비었는지
q.isEmpty();
// 7. pair 같은 경우는 그냥 구현해서 사용
static class Node{
int y;
int x;
int dist;
Node(int y,int x,int dist){
this.y=y;
this.x=x;
this.dist=dist;
}
}
Queue<Node> queue=new LinkedList<>();
queue.add(new Node(1,2,3));
Node node= queue.poll();
10. Math 라이브러리
// 1. 최대 최소
Math.max(10, 2);
Math.min(10, 2);
// 2. 절대값
Math.abs();
// 3. 올림 내림 반올림
Math.ceil(-3.2); // -3
Math.floor(-3.2); // -4
Math.round(-3.26); // -3 첫째자리에서 반올림
// 3-1. 소수 둘째, 셋째 자리에서 반올림 하고 싶다면
double a = 1.23456;
String b = String.format("%.1f", a); // .1f는 둘째자리에서 반올림
// 4. 제곱 제곱근
Math.pow(2, 2); // 2^2 = 4
Math.sqrt(4); // 2