Skip to content

Latest commit

 

History

History
248 lines (146 loc) · 6.07 KB

TIL_221115.md

File metadata and controls

248 lines (146 loc) · 6.07 KB

❤️‍🔥 TIL DAY 06 ❤️‍🔥

📆 2022년 11월 15일 화요일




💤💤💤
졸려서 환장하겠다!! 😵
하지만 Java 너무 어려워.. 공부 해야해.. 😭

이해 안되는 부분 계속 책 보면서 반복해서 작성하는 중..
비가 온다

오늘 강의에서 THIS IS JAVA 진도는 끝났다
혼자 하던 공부는 아직인데 ㅜㅜ
열심히 하자 아자아자❗️❗️❗️

오늘의 노동요는 이거...
몇년 전부터 느꼈지만 dosii 진짜 완전 목소리 내스타일이야




💡 Collection Framework

java.util 패키지
ListSetCollection인터페이스로 정의
Map은 키와 값을 하나의 쌍으로 묶어서 관리

📍 List

  • 순서를 유지하고 저장
  • 중복 저장 가능
  • ArrayList, Vector, LinkedList

📍 Set

  • 순서를 유지하지 않고 저장
  • 중복 저장 안됨
  • HashSet, TreeSet

📍 Map

  • 키와 값으로 구성된 엔트리 저장
  • 키는 중복 저장 안됨
  • HashMap, Hashtable, TreeMap, Properties



💡 List Collection

ArrayList, Vector, LinkedList
객체의 번지를 저장

📍 객체 추가

✔️ boolean add(E e)

→ 주어진 객체를 맨 끝에 추가

✔️ void add(int index, E element)

→ 주어진 인덱스에 객체를 추가

✔️ set(int index, E element)

→ 주어진 인덱스의 객체를 새로운 객체로 바꿈


📍 객체 검색

✔️ boolean contains(Object o)

→ 주어진 객체가 저장되어 있는지 여부

✔️ E get(int index)

→ 주어진 인덱스에 저장된 객체를 리턴

✔️ isEmpty()

→ 컬렉션이 비어 있는지 조사

✔️ int size()

→ 저장되어 있는 전체 객체 수를 리턴


📍 객체 삭제

✔️ void clear()

→ 저장된 모든 객체를 삭제

✔️ E remove(int index)

→ 주어진 인덱스에 저장된 객체를 삭제

✔️ boolean remove(Object obj)

→ 주어진 객체를 삭제




💡 ArrayList

List 컬렉션에서 가장 많이 사용됨
일반 배열과의 차이점 → 제한 없이 객체를 추가할 수 있음

List<E> list = new ArrayList<E>();        //  E에 지정된 타입의 객체만 저장
List<E> list = new ArrayList<>();         //  E에 지정된 타입의 객체만 저장
List list = new ArrayList();              //  모든 타입의 객체를 저장
  • 인덱스 0번부터 차례대로 저장됨
  • 특정 인덱스의 객체를 제거하면 뒤에 오는 인덱스가 모두 1씩 당겨짐
  • 특정 인덱스의 객체를 추가하면 뒤에 오는 인덱스가 모두 1씩 밀려남

🔗 Board.java
🔗 Board_ArrayListExample.java




💡 Vector

ArrayList와 동일한 내부구조
Vector동기화된 메소드로 구성

List<E> list = new Vector<E>();     //  E에 지정된 타입의 객체만 저장
List<E> list = new Vector<>();      //  E에 지정된 타입의 객체만 저장
List list = new Vector();           //  모든 타입의 객체를 저장
  • Vector동기화된 메소드로 구성
  • 동시에 Vector() 메소드를 실행할수 없음
  • 멀티 스레드 환경에서 안전하게 객체를 추가 & 삭제 가능

🔗 VectorExample




💡 TreeSet

컬렉션 프레임워크가 제공하는 검색 기능을 강화시킨 컬렉션

TreeSet<E> treeSet = new TreeSet<E>();
TreeSet<E> treeSet = new TreeSet<>();
  • 부모 노드의 객체와 비교해서 낮은 것은 왼쪽 자식 노드에 저장
  • 부모 노드의 객체와 비교해서 높은 것은 오른쪽 자식 노드에 저장

📍 리턴 타입 → E

✔️ first()

  • 제일 낮은 객체를 리턴

✔️ last()

  • 제일 높은 객체를 리턴

✔️ lower(E e)

  • 주어진 객체보다 바로 아래 객체를 리턴

✔️ higher(E e)

  • 주어진 객체보다 바로 위 객체를 리턴

✔️ floor(E e)

  • 주어진 객체와 동등한 객체가 있으면 리턴
  • 없다면 주어진 객체의 바로 아래의 객체를 리턴

✔️ ceiling(E e)

  • 주어진 객체와 동등한 객체가 있으면 리턴
  • 없다면 주어진 객체의 바로 위의 객체를 리턴

✔️ pollFirst()

  • 제일 낮은 객체를 꺼내오고 컬렉션에서 제거함

✔️ pollLast()

  • 제일 높은 객체를 꺼내오고 컬렉션에서 제거함

📍 리턴 타입 → Iterator<E>

✔️ descendingIterator()

  • 내림차순으로 정렬된 Iterator를 리턴

📍 리턴 타입 → NavigableSet<E>

✔️ descendingSet()

  • 내림차순으로 정렬된 NavigableSet을 리턴

✔️ headSet(E toElement, boolean inclusive)

  • 주어진 객체보다 낮은 객체들을 NavigableSet으로 리턴
  • 주어진 객체 포함 여부는 두 번째 매개값에 따라 달라짐

✔️ tailSet(E fromElement, boolean inclusive)

  • 주어진 객체보다 높은 객체들을 NavigableSet으로 리턴
  • 주어진 객체 포함 여부는 두 번째 매개값에 따라 달라짐

✔️ subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

  • 시작과 끝으로 주어진 객체 사이의 객체들을 NavigableSet으로 리턴
  • 시작과 끝 객체의 포함 여부는 두 번째, 네 번째 매개값에 따라 달라짐