IT/Java
Java 자주 쓰는 문법·메소드 정리 | String, List, Map, Stream, Arrays까지 한 번에
PARK_90
2022. 8. 22. 21:41
300x250
Java를 공부하거나 코딩 테스트, 실무 API 처리, 문자열 가공을 하다 보면 자주 찾게 되는 것이 바로 기본 메소드입니다.
특히 아래처럼 자주 막히게 됩니다.
- 문자열 자르기, 포함 여부 확인은 어떤 메소드를 써야 하는가?
- List 정렬, 중복 제거, 부분 추출은 어떻게 하는가?
- Map에서 키 존재 여부 확인이나 기본값 처리는 어떻게 하는가?
- Arrays, Math, 형 변환 관련 메소드 중 실무에서 자주 쓰는 것은 무엇인가?
- Set, Stream, StringBuilder, Comparator 같은 문법/도구는 언제 꺼내 써야 하는가?
기존처럼 메소드를 무작정 나열해 두면 한 번 훑고 끝나기 쉽습니다. 그래서 이번 글은 실제로 자주 찾는 상황 기준으로, String → 형 변환 → 배열/리스트 → Map → Queue → Set → Stream → StringBuilder → Comparator → Math 순서로 다시 정리하겠습니다.
이 글은 이렇게 보면 좋습니다
입문자는 어떤 메소드가 어떤 상황에서 쓰이는지 감을 잡는 용도로
실무자/학습자는 자주 찾는 메소드 치트시트처럼 빠르게 참고하는 용도로 보면 좋습니다.
728x90
Java에서 자주 쓰는 메소드는 왜 따로 정리해둘까?
문법 자체보다 어떤 상황에서 어떤 메소드를 꺼내 쓰는지가 더 중요합니다.
Java는 기본 라이브러리가 꽤 잘 갖춰져 있어서, 직접 로직을 다 작성하기보다 이미 제공되는 메소드를 적절히 활용하는 편이 더 안전하고 읽기 좋습니다.
예를 들어 아래 상황은 실무와 학습에서 모두 자주 나옵니다.
- 사용자 입력 문자열 공백 제거
- 숫자 문자열을 int로 변환
- 배열 정렬과 탐색
- 리스트 중복 제거
- 맵에서 기본값 처리
- 최댓값/최솟값 계산
즉, Java 메소드는 단순 참고용 목록이 아니라 문제를 더 짧고 안정적으로 풀기 위한 기본 도구라고 보는 편이 맞습니다.
메소드를 많이 외우는 것보다, 문자열 처리 / 컬렉션 처리 / 숫자 처리에서 자주 쓰는 것부터 익히는 것이 훨씬 실용적입니다.
1. String에서 자주 쓰는 메소드
문자열 처리는 거의 모든 Java 코드에서 등장합니다.
String text = " hello java ";
int len = text.length();
char ch = text.charAt(2);
String sub = text.substring(2, 7);
String trimmed = text.trim();
boolean hasJava = text.contains("java");
String replaced = text.replace("java", "spring");
꼭 알아둘 포인트
replace()는 일반 문자열 치환, replaceAll()은 정규식 기반 치환이라는 점을 구분하면 좋습니다.2. 형 변환에서 자주 쓰는 메소드
문자열과 숫자 사이 변환은 정말 자주 나옵니다.
String numStr = "123";
int num = Integer.parseInt(numStr);
long longNum = Long.parseLong("1000");
double doubleNum = Double.parseDouble("3.14");
String str1 = String.valueOf(100);
String str2 = Integer.toString(100);
char ch = '7';
int digit = Character.getNumericValue(ch);
자주 하는 실수
숫자가 아닐 수도 있는 문자열에 바로
parseInt()를 쓰면 예외가 발생할 수 있습니다. 사용자 입력값이라면 검증 또는 예외 처리를 같이 생각해야 합니다.3. Arrays에서 자주 쓰는 메소드
정렬, 탐색, 복사가 핵심입니다.
int[] arr = {8, 10, 12, 2, 0, 5};
Arrays.sort(arr);
int index = Arrays.binarySearch(arr, 10);
int[] copy = Arrays.copyOfRange(arr, 0, 3);
String result = Arrays.toString(arr);
4. List에서 자주 쓰는 메소드
추가, 수정, 삭제, 정렬, 부분 추출이 가장 많이 나옵니다.
List<String> list = new ArrayList<>();
list.add("java");
list.add("spring");
list.add(1, "sql");
list.set(0, "java17");
list.remove(1);
boolean exists = list.contains("spring");
int index = list.indexOf("spring");
Collections.sort(list);
List<String> sub = list.subList(0, 1);
List<Integer> nums = Arrays.asList(1, 2, 2, 3, 4, 4);
List<Integer> distinct = nums.stream().distinct().toList();
자주 참고하는 패턴
중복 제거는 stream().distinct(), 정렬은 Collections.sort(), 부분 자르기는 subList() 조합을 많이 씁니다.
5. Map에서 자주 쓰는 메소드
카운팅, 캐시, 값 조회에서 많이 쓰입니다.
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
int count = map.get("apple");
boolean hasKey = map.containsKey("apple");
int value = map.getOrDefault("banana", 0);
빈도수 계산처럼 자주 나오는 패턴은 아래처럼 씁니다.
map.put(word, map.getOrDefault(word, 0) + 1);
6. Queue / PriorityQueue에서 자주 쓰는 메소드
BFS, 작업 순서 처리, 우선순위 처리에서 자주 나옵니다.
Queue<Integer> queue = new LinkedList<>();
queue.offer(10);
queue.offer(20);
int first = queue.peek();
int removed = queue.poll();
boolean empty = queue.isEmpty();
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.offer(5);
pq.offer(1);
pq.offer(3);
int top = pq.peek(); // 1
7. Math에서 자주 쓰는 메소드
최댓값, 절대값, 반올림은 매우 자주 나옵니다.
int max = Math.max(10, 20);
int min = Math.min(10, 20);
int abs = Math.abs(-5);
double ceil = Math.ceil(3.14);
double floor = Math.floor(3.99);
long round = Math.round(3.5);
double pow = Math.pow(2, 3);
double sqrt = Math.sqrt(16);
8. length, length(), size() 차이는 꼭 구분해야 한다
입문자가 정말 자주 헷갈리는 기본 구분입니다.
int[] arr = new int[3];
int arrLen = arr.length;
String text = "java";
int textLen = text.length();
List<Integer> list = new ArrayList<>();
int listSize = list.size();
시험/코테/실무 공통 실수
배열에
length()를 쓰거나, String에 size()를 쓰는 식의 실수는 정말 흔합니다. 이 구분은 초반에 확실히 잡고 가는 것이 좋습니다.9. Set에서 자주 쓰는 문법과 메소드
중복 제거와 빠른 존재 확인이 필요할 때 많이 씁니다.
Set<String> set = new HashSet<>();
set.add("java");
set.add("spring");
set.add("java");
boolean exists = set.contains("java");
set.remove("spring");
int size = set.size();
Set은 같은 값을 중복으로 넣지 않는다는 점이 핵심입니다.
- 중복 제거가 필요할 때
- 값 존재 여부를 빠르게 확인할 때
- 방문 체크 같은 로직을 만들 때
실무/코테에서 자주 쓰는 패턴
new HashSet<>(list)로 중복을 제거하고, 다시 List로 바꾸는 흐름을 자주 사용합니다.10. Stream에서 자주 쓰는 메소드
실무에서 데이터 가공 코드를 짧고 읽기 좋게 만들 때 많이 씁니다.
List<String> names = Arrays.asList("java", "spring", "sql");
List<String> result = names.stream()
.filter(name -> name.length() >= 4)
.map(String::toUpperCase)
.toList();
자주 나오는 메소드는 아래 정도를 먼저 익히면 좋습니다.
주의할 점
Stream은 편리하지만, 너무 복잡한 체인을 한 줄에 몰아 쓰면 오히려 읽기 어려워집니다. 짧고 명확하게 쓰는 것이 좋습니다.
11. StringBuilder는 언제 써야 할까?
문자열을 반복해서 이어 붙일 때 성능상 유리한 경우가 많습니다.
StringBuilder sb = new StringBuilder();
sb.append("java");
sb.append(" ");
sb.append("spring");
String result = sb.toString();
반복문 안에서 str += value를 계속 쓰면 비효율적일 수 있기 때문에, 문자열을 여러 번 조합해야 하면 StringBuilder를 먼저 떠올리는 편이 좋습니다.
자주 쓰는 메소드
append(), insert(), delete(), reverse(), toString() 정도를 자주 보게 됩니다.12. Comparator와 정렬 문법도 같이 알아두면 좋다
객체 리스트 정렬은 실무에서 자주 나옵니다.
List<String> words = Arrays.asList("banana", "apple", "kiwi");
words.sort(Comparator.naturalOrder());
words.sort(Comparator.reverseOrder());
words.sort(Comparator.comparingInt(String::length));
객체 리스트를 정렬할 때는 아래 패턴이 자주 쓰입니다.
users.sort(Comparator.comparing(User::getAge));
users.sort(Comparator.comparing(User::getName).reversed());
즉, 배열 정렬만 아는 것보다 Comparator까지 같이 익혀두면 실무 활용 범위가 훨씬 넓어집니다.
실무에서 특히 많이 참고하는 메소드 조합
한 개씩보다 조합으로 기억하면 훨씬 잘 써먹게 됩니다.
- trim() + isEmpty() → 입력값 공백 처리
- split() + parseInt() → 구분자 문자열을 숫자로 변환
- containsKey() + getOrDefault() → Map 카운팅 처리
- Arrays.sort() + binarySearch() → 정렬 후 탐색
- stream().filter().map() → 목록 가공 처리
- new HashSet<>(list) → 리스트 중복 제거 시작점
- StringBuilder.append() → 반복 문자열 조합
이 글을 레퍼런스처럼 쓰는 방법
문제를 풀다가 막히면 “자료형이 무엇인지”부터 먼저 보고, 그 다음 이 글에서 String / List / Map / Set / Stream / Arrays / Math 영역만 빠르게 찾아보면 훨씬 효율적입니다.
마무리 정리
Java에서 자주 쓰는 메소드는 많지만, 실제로 가장 자주 만나는 영역은 문자열 처리, 형 변환, 배열/리스트 조작, 맵 기본 처리, 수학 계산입니다. 이 다섯 축만 잘 익혀도 실무 코드와 문제 풀이에서 체감이 큽니다.
String = substring, split, contains, replace, trim
형 변환 = parseInt, parseLong, parseDouble, valueOf
List / Map / Set = add, remove, containsKey, getOrDefault, contains
Stream / Comparator = filter, map, distinct, sorted, comparing
Arrays / Math / StringBuilder = sort, binarySearch, max, min, abs, append
같이 보면 좋은 Java 글
- 오버로딩 vs 오버라이딩 차이 한 번에 이해하기
- String vs StringBuilder vs StringBuffer 비교
- 객체지향 설계 5원칙 SOLID 쉽게 이해하기
Java 메소드 정리는 외워두는 자료라기보다, 자주 꺼내 쓰는 도구함처럼 관리하는 것이 가장 실용적입니다.
728x90