-
20221031 TIL 코테에 대비하자TIL 2022. 10. 31. 21:57
코딩테스트를 풀 때 효율성 테스트를 통과하려면 Collection을 이용하는 경우가 많다.
그런데 아직 Collection들의 메서드들에 대해 잘 모르면 문제를 풀기 어려운 것 같아서
자주 쓰일 만한 메서드들을 정리해두어야겠다고 생각했다.
Collection의 메서드
- Collections.max(Collection collection)
- Collections.max(Collection collection, Comparator comparator)
- Collections.min(Collection collection)
- Collections.min(Collection collection, Comparator comparator)
- Collections.swap(List list, int i, int j)
- i번째와 j번째 값을 바꾼다.
- Collections.sort(List list)
- Collections.sort(List list, Comparator comparator)
- Collections.rotate(List list, int distance)
- list를 distance가 양수라면 distance만큼 오른쪽으로 한 칸씩 미루고, list length를 넘어간 것은 앞으로 땡겨온다.
- distance가 음수라면 distance만큼 왼쪽으로 한 칸씩 당기고, 첫 값보다 당겨진 것은 끝에서부터 넣어준다.
- Collections.reverseOrder()
- Collection의 natural ordering을 뒤집은 comparator를 반환한다.
- Collections.reverse(List list)
- list를 뒤집는다.
- Collections.replaceAll(List list, T oldValue, T newValue)
- Collections.nCopies(int n, T o)
- object를 n번 카피한 리스트를 반환한다.
- Collections.indexOfSubList(List source, List target)
- sublist의 첫 element 인덱스를 반환한다.
- 만약 sublist를 source에서 못 찾으면 -1을 반환한다.
- Collections.frequency(Collection collection, Object object)
- object와 equal한 값이 collection에 몇 번 등장하는지 찾아준다.
- Collections.fill(List list, T object)
- list의 값들을 object로 넣어준다.
- Collections.disjoint(Collection collection1, Collection collection2)
- 겹치는 원소가 하나도 없으면 true를 반환한다.
- Collections.binarySearch(List list, T key, Comparator comparator)
- binarySearch 알고리즘으로 key를 list에서 찾는다.
- 이 때 list는 comparator를 이용해서 ascending 순서로 소팅되어 있어야 한다.
- Collections.binarySearch(List list, T key)
- binarySearch 알고리즘으로 key를 list에서 찾는다.
- 이 때 list는 natural ordering에 따른 ascending 순서로 소팅되어 있어야 한다.
List의 메서드
- List.add(E element)
- List.add(int index, E element)
- List.contains(Object object)
- List.containsAll(Collection collection)
- collection의 모든 요소를 리스트가 갖고 있을 때 true를 반환한다.
- List.get(int index)
- List.indexOf(Object object)
- object와 일치하는 첫 index를 반환한다.
- 만약 못 찾으면 -1이 반환된다.
- List.lastIndexOf(Object object)
- object와 일치하는 마지막 index를 반환한다.
- 만약 못 찾으면 -1이 반환된다.
- List.remove(int index)
- List.remove(Object object)
- 일치하는 요소가 있으면 일치하는 첫 요소를 삭제한다.
- List.removeAll(Collection collection)
- 리스트에서 collection의 모든 요소에 해당하는 값들을 삭제한다.
- List.retainAll(Collection collection)
- 리스트에서 collection에 존재하는 값만 남기고, collection에 없는 값은 다 제거한다.
- List.set(int index, E element)
- 인덱스에 해당하는 값을 element로 대체한다.
- List.size()
- List.sort(Comparator comparator)
- List.subList(int fromIndex, int toIndex)
- fromIndex에 해당하는 값은 포함하고, toIndex에 해당하는 값은 포함되지 않는다.
- List.toArray()
Set의 메서드
- Set.add(E e)
- Set.addAll(Collection collection)
- Set.contains(Object object)
- Set.containsAll(Collection collection)
- Set.isEmpty()
- Set.remove(Object object)
- Set.removeAll(Collection collection)
- Set.retainAll(Collection collection)
- set에 collection에 있는 값만 남긴다.
- Set.size()
- Set.toArray()
Map의 메서드
- Map.containsKey(Object key)
- Map.containsValue(Object value)
- Map.entrySet()
- map으로 stream을 쓰고 싶을 때 key와 value가 모두 필요한 경우
- Map.entrySet().stream(entry -> {entry.getKey() entry.getValue()~~ })
- 와 같이 활용할 수 있다.
- Map.get(Object key)
- Map.getOrDefault(Object key, V defaultValue)
- key가 map에 있으면 key에 해당하는 값을 가져오고,
- 없으면 defaultValue를 반환한다.
- Map.isEmpty()
- Map.keySet()
- Map.put(K key, V value)
- 만약 이미 key에 어떤 값이 매핑되어 있다면 value로 대체된다.
- Map.putAll(Map m)
- Map.putIfAbsent(K key, V value)
- key가 Map에 존재하지 않는 key거나 key의 value가 null이면 key에 value를 매핑해주고 null을 반환하고,
- 만약 key에 null이 아닌 값이 매핑되어 있으면 그 매핑된 값을 반환한다.
- Map.remove(Object key)
- Map.remove(Object key, Object value)
- key에 해당하는 값이 value일 때 그 entry를 삭제한다.
- Map.replace(K key, V value)
- Map.replace(K key, V oldValue, V newValue)
- key에 해당하는 값이 oldValue에 해당할 때 newValue로 replace한다.
- Map.size()
- Map.values()
+ array(int[]타입)를 List(List<Integer>타입)로 바꾸기
Arrays.stream(numbers) .boxed() .collect(Collectors.toList());
다양한 메서드들을 써보면서 각 메서드를 어떤 상황에 쓰면 좋을 지도 정리해보자!
그리고 String의 메서드들도 정리해보자!
'TIL' 카테고리의 다른 글
20221102 TIL 해시 충돌을 어떻게 해결할 것인가 (1) 2022.11.02 20221101 TIL 코테에 대비하자 2 (0) 2022.11.01 20221030 TIL 제네릭 메서드와 Functor에 대해 알아보자 (1) 2022.10.30 20221029 TIL ??????? (1) 2022.10.29 20221028 TIL 제가 한 번 도커를 쉽게 설명해보겠습니다 (0) 2022.10.28