
startsWith(str) : 문자열이 특정 문자로 시작되는지 판별endsWith(str) : 문자열이 특정 문자로 끝나는지 판별equal(str) : String 문자열 값 비교indexOf(str) : 특정 문자열이 대상 문자열의 몇 번째 인덱스에 위치하는지 반환substring : 지정한 범위에 속하는 문자열 반환substring(index): index 위치를 포함하여 이후의 모든 문자열을 리턴substring(beginIndex, endIndex) : beginIndex에서 endIndex-1까지의 부분 문자열을 반환replace(beforeStr, afterStr) : 특정 문자열을 새로운 문자열로 치환toLowerCase(str) : 문자열을 소문자로 변환toUpperCase(str) : 문자열을 대문자로 변환trim(str) : 문자열의 앞뒤 공백 제거replace(" ", "")를 사용해야 함charAt(index) : 문자열 특정 위치에 있는 문자 반환java.lang.StringIndexOutOfBoundsException 오류 발생String.valueOf(str) : 지정된 값을 String으로 변환contains(str) : 특정 문자열이 포함되어 있는지 확인split(regex) : 문자열을 특정 문자열을 기준으로 나는 후 배열을 반환length : 문자열의 길이를 반환Arrays.sort() : 오름차순으로 정렬기본 정렬조건이 오름차순인 이유는 Class 내에 기본적으로 구현되어있는
ComparableInterface의compareTo메서드를 기준으로 하기 때문이다. Java에서 인스턴스를 서로 비교하는 클래스들은 모두Comparable인터페이스가 구현되어 있다.
int[] intArr = new int[] {1, 3, 5, 2, 4};
Arrays.sort(intArr, 2, 5); // intArr[2]~intArr[4]의 값만 정렬Wrapper Class로 된 배열(Reference Type Array)만 가능하다.
이미 정의된 메소드를 활용하여 정렬할 수 있다.
- Comparator.reverseOrder()
- Collections.reverseOrder()
Integer[] integerArr = new Integer[] {1,3,5,2,4};
String[] stringArr = new String[] {"A","C","B","E","D"};
Arrays.sort(integerArr,Comparator.reverseOrder()); //내림차순
Arrays.sort(stringArr,Collections.reverseOrder()); //내림차순
Arrays.asList(arr) : 배열을 ArrayList로 변환Arrays.fill(arr, value) : 배열을 value 값으로 채움Arrays.fill(arr, start, end, value) : 배열의 start부터 end-1까지 value 값으로 채움Arrays.copyOf(arr, size) : 배열의 0번째 원소부터 size만큼 복사 (새로운 배열 생성)Arrays.copyOfRange(arr, start, size) : 배열의 start원소부터 size만큼 복사 (새로운 배열 생성)valueOf() 메소드를 통해 변환할 수 있다.Integer.valueOf(str)Double.valueOf(str)Float.valueOf(str)parse{자료형}() 메소드를 통해 변환할 수 있다.Integer.parseInt(str)Long.pareLong(str)Short.parseShor(str)valueOf() 메소드를 통해 변환할 수 있다.String.valueOf(number)toString() 메소드를 통해 변환할 수 있다.Interger.toString(number)Float.toString(number)Double.toString(number)(int)number , (double)number , (float)numberArray와 List는 항상 반복문을 통해 변환할 수 있다.
Arrays.asList(arr)new ArrayList<>(Arrays.asList(arr))Stream.of(arr).collect(Collectors.toList())collect() 메소드는 데이터를 원하는 타입으로 변경해준다.// int -> List
List<Integer> intList = new ArrayList<>();
for (int element : arr) {
intList.add(element);
}// int -> List
List<Integer> intList = Arrays.stream(arr)
.boxed()
.collect(Collectors.toList());boxed() 메소드는 Primitive Stream 값을 Wrapper 값으로 바꿔준다.collect() 메소드를 통해 원하는 타입으로 변경할 수 있다.arrList.toArray(new String[arrList.size()])null 로 채워진다.
Collections.sort(c) : 컬렉션 객체를 오름차순으로 정렬Collections.max(c) : 컬렉션 내의 최댓값 반환Collections.min(c) : 컬렉션 내의 최솟값 반환Collections.reverse(c) : 컬렉션을 순서를 역으로 변경Collections.copy(fromObj, toObj) : fromObj의 모든 객체를 toOBj으로 복사해 반환Collections.bianrySearch(c, obj) : 정렬된 컬렉션에서 이진 탐색으로 특정 객체를 찾아 인덱스를 반환Collections.disjoint(c1, c2) : 주어진 두 컬렉션에 일치하는 값이 하나도 없으면 true, 하나라도 있으면 false 반환 (= 서로소 집합)Collection 인터페이스에서는 Iterator 인스턴스를 반환하는
iterator()메소드를 정의하여 각 요소에 접근하도록 하고 있다. 따라서 Collection 인터페이스를 상속 받는 List와 Set 인터페이스에서도iterator()메소드를 사용할 수 있다.
hasNext() : 해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환next() : 이터레이션(iteration)의 다음 요소를 반환equals(c) : 해당 컬렉션과 전달된 객체가 같은지 확인isEmpty() : 해당 컬렉션 객체가 비어있는지 확인size() : 해당 컬렉션 객체의 크기 반환iterator() : 해당 컬렉션의 반복자(iterator)를 반환toArray(c) : 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환List 인터페이스를 구현한 ArrayList를 주로 사용
add : 특정 값 추가add(obj) : 리스트 끝에 원소 추가add(index, obj) : 특정 인덱스에 원소 추가addAll : 주어진 컬렉션의 모든 객체를 추가addAll(c) : 주어진 컬렉션의 모든 객체를 끝에 추가addAll(index, c) : 주어진 컬렉션의 모든 객체를 index 위치에 추가get(index) : 특정 인덱스 값 조회set(index, obj) : 특정 위치에 객체 저장remove : 특정 값 삭제remove(index) : 인덱스에 위치하는 값 삭제remove(obj) : 특정 객체 삭제indexOf(obj) : 리스트에서 특정 객체의 인덱스를 반환subList(fromIndex, toIndex) : fromIndex와 toIndex-1까지의 부분 리스트 반환contains(obj) : 특정 원소가 리스트 내에 있는 지 확인sort() : 리스트를 오름차순으로 정렬sort(comparator) : 리스트를 특정 정렬 기준으로 정렬toArray() : 리스트를 고정 크기의 배열로 전환Map 인터페이스를 구현한 HashMap을 주로 사용
put(key, value) : 맵에 key와 value 값 추가putAll(map) : map의 모든 원소를 추가get(key) : key와 매핑된 value 반환remove(key) : 특정 key에 해당하는 값을 삭제replace(key, value) : 특정 key에 해당하는 값을 value로 대체clear() : 맵에 저장된 모든 객체 제거containsKey(key) : 특정 key가 맵에 있는지 판별containsValue(value) : 특정 value가 맵에 있는지 판별keySet() : 맵의 모든 key가 저장된 Set을 반환entrySet() : 맵의 모든 entry(=key와 value의 결합) 저장된 Set을 반환values() : 맵의 모든 value 값을 컬랙션 형태로 반환Set 인터페이스를 구현한 HashSet을 주로 사용
clear() : Set에 저장된 모든 객체 제거getOrDefault(key, defaultValue) : key가 없다면 defualtValue로 초기화하여 반환하고, 있다면 해당 key의 value를 반환아래 함수들은 확인/성공 여부를 boolean 값으로 반환
add(obj) : Set에 특정 요소 추가addAll(c) : 주어진 컬렉션의 모든 객체를 집합에 추가 (=합집합)remove(obj) : Set에 특정 요소 삭제removeAll(c) : 주어진 컬렉션의 객체와 같은 원소를 제거(=차집합)contains(obj) : 특정 객체를 포함하는지 확인containsAll(c) : 주어진 컬렉션의 모든 객체를 포함하는지 확인(=부분집합)retainAll(c) : 주어진 컬렉션의 객체와 동일한 것만 남기고 삭제(=교집합)push(obj) : 스택의 top에 값을 삽입pop() : 스택의 top 값을 반환한 뒤에 삭제peek() : 스택의 top 값 조회clear() : 스택의 값을 모두 제거empty() : 스택이 비어있는지 확인contains(obj) : 스택이 특정 원소를 포함하고 있는지 확인search(obj) : 스택에서 특정 원소를 찾아 위치(1부터 시작)를 반환일반적인 큐는 주로 LinkedList를 사용
add(obj) : LinkedList 의 마지막에 객체를 추가offer(obj) : 큐의 마지막에 객체를 추가add는 예외를 발생시키지만 offer는 false를 반환offerFirst(obj) : LinkedList의 맨 앞에 객체를 추가offerLast(obj) : LinkedList의 맨 마지막에 객체를 추가poll() : 큐의 맨 앞에 위치한 값을 반환한 뒤에 삭제pollFirst() : LinkedList의 첫번째 노드르 반환하면서 제거pollLast() : LinkedList의 마지막 노드르 반환하면서 제거peek() : 큐의 맨 앞에 위치한 값을 반환peekFirst() : LinkedList의 첫번째 노드를 반환peekLast() : LinkedList의 마지막노드를 반환우선순위 큐는 주로 PriorityQueue를 사용
Math.max(n1, n2) : 두 인자 중 더 큰 값을 반환Math.min(n1, n2) : 두 인자 중 더 작은 값을 반환Math.abs(n) : 절댓값을 반환Math.pow(base, exponent) : 제곱 값을 반환Math.sqrt(n) : 제곱근 반환Math.round(n) : 소숫점 첫번째 자리에서 반올림한 결과 반환Math.floor(n) : 내림 연산 결과 반환Math.ceil(n) : 올림 연산 결과 반환Arrays
Data Type 변환
Collection Framework
Stack
Math