Day15

두윤기·2023년 1월 16일
0
post-custom-banner

복습

  • String 내림차순 정렬하기
    Arrays.sort(data, (o1, o2) -> o2.compareTo(o1));

> gitignore


Collection

iterable(interface): 반복 가능

  • Colleciton: 배열을 대신할 수 있는 저장소
    • List
      java에서 제일 많이 쓰이는 collection, data가 들어온 순서 반영해서 저장
    • Queue: 프로그램 내부적으로 쓰이는 경우가 많음
    • Set
      data를 내부 기준대로 정렬하면서 저장
  • 알고리즘, 자료구조

List

  • An ordered collection (also known as a sequence(선형구조, 시작과 끝))
  • ArrayList vs LinkedList
    • ArrayList는 data의 수가 많고, 자주 바뀌는 구조(Create, Delete)에선 불리하고, data 접근이 많은 곳에선 유리하다.

> Method

.add(?int index, E element)

.get(int index)

.set(int index, Object o)

.size()

.remove(int index)|(Object o)

.sort(?Comparator c)

.contains(Object o)

if and only if Objects.equals(o, e) is true

.indexOf(Object o)

> ArrayList

> LinkedList

+ 배열로 List 생성하기

	// Java 8+(immutable)
    List<Integer> lists = Arrays.asList(10, 20, 30, 40, 50);
    // Java 9+(immutable)
    List<Integer> list = List.of(10, 20, 30, 40, 50);

Collections

> Method

Collections.reverse(Collection c)

Collections.shuffle(Collection c)

+ diagramio

Set

  • data 중복 X
  • data가 tree 형태로 저장되어 data 탐색 속도가 빠름

> TreeSet

> HashSet

> 집합 연산

  • Union(∪, 합집합)
    Set<String> union = new TreeSet<>();
    union.addAll(galaxy);
    union.addAll(iphone);
  • Intersection(∩, 교집합)
    Set<String> intersect = new TreeSet<>(galaxy);
    intersect.retainAll(iphone);
  • Relative Complement(-, 차집합)
    Set<String> minus = new TreeSet<>(galaxy);
    minus.removeAll(iphone);

Stack & Queue

  • .peek();

> Stack

  • LIFO(Last-In-First-Out) 형태의 저장소
  • 인터넷 뒤로가기, 앞으로 가기
  • undo(control + z)

method

  • .push();
  • .pop();

> Queue

  • FIFO(First-In-First-Out) 형태의 저장소 (대기열, 입출력)
  • 우선 순위 queue

method

  • .poll();
profile
programmerD
post-custom-banner

0개의 댓글