Collections Framework (Feat. 생활코딩)

Chaedie·2022년 5월 12일
0

JAVA

목록 보기
8/9
post-thumbnail
post-custom-banner

Img Ref : https://opentutorials.org/module/516/6446

Set / List

  • HashSet
public static void main(String[] args) {
        HashSet<Integer> A = new HashSet<Integer>();
			//	ArrayList<Integer> A = new ArrayList<Integer>();
        A.add(1);
        A.add(2);
        A.add(2);
        A.add(2);
        A.add(3);

        Iterator hi = A.iterator();
        while (hi.hasNext()) {
            System.out.println(hi.next());
        }

  • Set은 중복 불가

  • ArrayList는 중복 가능

  • Hashset Method

    • A.ContainsAll(B) == is B 부분집합 of A ?
    • A.addAll(B) == A = A,B의 합집합
    • A.retainAll(B) == A = A,B의 교집합
    • A.removeAll(B) == A = A,B의 차집합
  • Set의 특징

    • 중복 불가
    • 순서 랜덤

https://prashantgaurav1.files.wordpress.com/2013/12/java-util-collection.gif

  • 위 그림은 Collection 인터페이스 이하 계층도
  • Set에는 index를 통한 get set add 등이 없지만, List에는 있다.

Iterator??


Map : HashMap (Dictionary)

  • Map 은 HashMap이 대표적이다. (Dictionary)
  • Map 은 (키, 밸류) 로 이루어진 컨테이너다.
  • 키는 중복이 불가하다. 키가 겹치면 밸류만 바뀐다.
  • HashMap<String, Integer>(); → Generic을 이용해서 키값과 밸류값의 타입을 안전하게 보존하는거다. 크게 어렵게 생각할거 없다.

Map의 Key, Value 꺼내기

  1. Set<Map.Entry <,>> 객체를 이용해서 map.entrySet(); 을 만들수 있다. ( Set은 중복 안된다는 특징 사용 )
    • entry.getKey(), entry.getValue() 를 사용해 키, 값을 꺼낼 수 있다.
  2. Entries를 Iterator로 만들 수 있다. while(hasNext())에 넣고, iterator.next()로 돌려가면서 getKey(), getValue() 할 수 있다.

  • Q) 그래서 뭐가 더 빠름?

Collections의 사용법과 정렬

  • Comparable Interface에는 public int compareTo(T o); 라는 메소드가 있다. 이걸 override해야 Sorting이 가능하다.
  • 위 코드 보면 return this.key - ((Computer) o). key; 로 compareTo 를 정의해뒀다.
  • a.compareTo(b)의 경우 a가 b 보다 크면 int 값이 양수가 되는거다.

노션에 적고 복붙하면 돼서 좋은데,,,
사진은 복붙이 안되네.. 블로그 공들여서 하시는 분들이 새삼스레 대단하다고 느껴진다.

profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글