ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20221031 TIL 코테에 대비하자
    TIL 2022. 10. 31. 21:57

     

    코딩테스트를 풀 때 효율성 테스트를 통과하려면 Collection을 이용하는 경우가 많다.

    그런데 아직 Collection들의 메서드들에 대해 잘 모르면 문제를 풀기 어려운 것 같아서

    자주 쓰일 만한 메서드들을 정리해두어야겠다고 생각했다.

    https://cdn.programiz.com/sites/tutorial2program/files/Java-Collections.png

    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의 메서드들도 정리해보자!

    댓글

Designed by Tistory.