ToBeMaster-JAVA / Standard-JAVA-Basic

0 stars 0 forks source link

9주차 학습 #11

Closed yummygyudon closed 2 years ago

yummygyudon commented 2 years ago

1. 교재

📕 Java의 정석_기초편 -제 2권- : 「Chapter 11. 컬렉션 프레임웍 (2) _ 30단원 ~ 56단원」

기간 : 2022.02.19 ~ 2022.02.25

*방법은 이전 주와 동일


2. 준비 문제

image

lemon0913 commented 2 years ago

《 Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1

ㄱ:List

ㄴ:Set

ㄷ:Map

ㄹ:Collection

ㅁ:??

Q2

(1), (3)

《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1

1, 2

Q2

LIFO, FIFO

Q3

크기를 변경할 수 없어 새로운 배열을 만들어 데이터를 복사해야 한다

데이터의 추가, 삭제에 시간이 오래 걸린다

《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1

ㄱ - a

ㄴ - c

ㄷ - b

Q2

Q3

1 배열을 복사, 배열에서 지정한 범위 만큼 복사

2 배열 채우기

3 배열 정렬

4 배열의 요소를 비교해서 같으면 true, 다르면 false

5 배열의 요소를 문자열로 출력

6

《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1

Q2

2

《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

Q1

               [5]
           /         \
       [2]             [8]
     /     \         /    \
   [1]     [4]     [6]    [9]

Q2

《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1

1)put()

2)get()

Q2

1)map의 키와 값을 엔트리 형태로 set에 저장

2)map의 키들을 set에 저장

3)map의 값들을 컬렉션 형태로 저장

《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1

??

Q2

? - 수정 불가 - singleton - 같은 종류의 객체만 저장

yummygyudon commented 2 years ago

《 Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

ㄱ : List
ㄴ : Set
ㄷ : Map
ㄹ : Collection
ㅁ : Iterator 

Q2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

(1) List인터페이스를 구현한다
(3) 데이터의 저장공간으로 배열을 사용한다



《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1. 다음 중 옳지 않은 것 2개를 고르시오.

① 자바에서는 스택(Stack)과 큐(Queue)를 각각의 클래스로 정의되어 있다.

⑤ LinkedList는 양방향 이동이 가능하다.


Q2. 빈 칸에 채워질 단어를 서술하시오.

LIFO(Last-In First-Out) 
FIFO(First-In First-Out)


Q3. 배열(Array)의 단점 2가지를 서술하시오.

  1. 크기를 변경할 수 없다
  2. 비순차적인 데이터 추가/삭제에 소요되는 시간이 길다.



《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

ㄱ - a / ㄴ - c  / ㄷ- b


Q2. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 iterator()를 직접 호출할 수 없다. 이때 Iterator를 얻기위해서는 어떻게 해야하는가?

entrySet() 등의 메서드를 통해 먼저 Set로 변환해주어야 한다.


Q3. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

1. copyOf(), copyOfRange()  : 객체/범위를 복사해서 복사본 반환
2. fill(), setAll() : 배열 채우기
3. sort() : 정렬
4. equals() :  같은지 비교
5. toString() : 문자열 변환
6. asList(Object...a) :  배열을 List로 변환



《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1. Comparator와 Comparable에 대해 틀린 것을 고르시오.

4) Comparable을 구현한 클래스는 comparator를 이용해 내림차순 정렬이 불가능하다.


Q2. HashSet에 대해 틀린 것을 고르시오.

2) hashSet은 저장순서를 유지한다.



《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

Q1. [5, 8, 9, 6, 2, 1, 4 ]를 순서대로 TreeSet에 저장하면 어떤 구조로 저장되는지 아래 물음표를 채워 나타내시오.

               [5]
           /         \
       [2]             [8]
     /     \         /    \
   [1]     [4]     [6]    [9]


Q2. 아래 내용에 대해 옳은 것과 틀린 것을 구분하고, 틀린 것은 올바르게 고치시오.

옳은 것

  1. TreeSet은 이진검색트리 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스로, red-black-tree로 구현되어 있다.
  2. TreeSet은 생성자와 함께 주어진 컬렉션을 저장하도록 지정할 수 있다.
  3. TreeSet은 데이터의 삽입/삭제 및 정렬, 검색, 범위검색에 있어서 HashSet에 비해 시간적인 이점을 갖는다.

틀린 것

  1. TreeSet은 기본적으로 오름차순 정렬로 저장되며, 별도로 Comparator 구현해서 기준을 변경할 수 있음.
  2. TreeSet은 이분법적 대소 비교 후, 적절한 위치를 찾아 저장되고 중복값은 저장하지 않는다.



《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오 1) put(Object key, Object value) 2) get(Object key)


Q2. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

HashMap map = new HashMap();
1) Set set = map.entrySet();
// 기존 맵의 각 Entry 즉, 키와 값의 쌍으로 Set 생성
2) set = map.keySet();
// 각 Entry의 "키(key)"들로만 이루어진 Set 생성
3) Collection values = map.values();
// 각 Entry의 "값(value)"들로만 이루어진 Set 생성



《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1. java.util.Collection과 java.util.Collections에 대해 설명하세요

java.util.Collection : ListSet인터페이스의 기반 인터페이스 java.util.Collections : 컬렉션과 관련된 메서드를 제공하는 클래스


Q2. 빈칸을 채우세요

기능 메서드
동기화 처리 synchronized~
변경불가 컬렉션 생성 unmodifiable
단 하나의 객체만 저장 컬렉션 생성 singleton~ _ Set는 그냥 singleton
한 종류의 객체만 저장하는 컬렉션 생성 checked


01stone commented 2 years ago

《 Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

(ㄱ)인터페이스 : 순서가 있는 데이터의 집합, 데이터의 중복을 허용
(ㄴ)인터페이스 : 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음
(ㄷ)인터페이스 : 키와 값의 쌍으로 이루어진 데이터의 집합, 순서는 유지되지 않으며 키는 중복을 허용하지 않고 값은 중복을 허용 
(ㄹ) : (ㄱ)과 (ㄴ)의 공통부분을 추출한 것, 여러 객체를 모아놓은 것을 의미
(ㅁ) : 표준화, 정형화된 체계적인 프로그래밍 방식 

답 : (ㄱ)List, (ㄴ)Set, (ㄷ)Map, (ㄹ)Collection, (ㅁ)framework


Q2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

답 : 1, 3

(1) List인터페이스를 구현한다
(2) 저장순서가 유지되고 중복을 허용하지 않는다
(3) 데이터의 저장공간으로 배열을 사용한다
(4) 자체적으로 동기화 처리되어 있다.

해설
(2) : 저장순서가 유지되고 중복 허용
(4) : Vector는 자체적으로 동기화 처리되어 있으나 ArrayList는 동기화 되어있지 않음



《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1. 다음 중 옳지 않은 것 2개를 고르시오.

답 : 2, 5

① 자바에서는 스택(Stack)과 큐(Queue)를 각각의 클래스로 정의되어 있다.

② 큐(Queue)의 메서드 중 객체를 꺼내는 `offer()` 와 객체를 삭제없이 읽어오는 `peek()`는 큐가 비어있을 경우, null을 반환한다.

③ LinkedList가 ArrayList보다 추가/삭제가 빠르다.

④ LinkedList는 데이터가 많을수록 접근시간이 길어진다.

⑤ LinkedList는 양방향 이동이 가능하다.


Q2. 빈 칸에 채워질 단어를 서술하시오.

답 : LIFO, FIFO
"스택(Stack)" 은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 (  )구조로 되어있고,
"큐(Queue)" 는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 (  )구조로 되어있다.


Q3. 배열(Array)의 단점 2가지를 서술하시오.

크기를 변경할 수 없음
비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸림



《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

ㄱ. Iterator
ㄴ. Enumeration
ㄷ. ListIterator

a. 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스
b. Iterator에 양방향 조회 기능 추가
c. Iterator의 구버전

답 : ㄱ-a, ㄴ-b, ㄷ-c


Q2. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 interator()를 직접 호출할 수 없다. 이때 Interator를 얻기위해서는 어떻게 해야하는가?

keySet()이나 entrySet()과 같은 메서드를 통해 Set의 형태로 얻어온 후 다시 호출


Q3. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

1. copyOf(), copyOfRange()  : 배열복사
2. fill(), setAll() : 배열을 채움
3. sort() : 배열을 정렬
4. equals() : 배열을 비교 True/False
5. toString() : 문자열로 출력
6. asList(Object...a) :  List로 변환



《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1. Comparator와 Comparable에 대해 틀린 것을 고르시오.

답 : 4?

1) Comparator 와 Comparable 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다.
2) Comparator는 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용한다.
3) Comparable을 구현하고 있는 클래스들은 기본적으로 오름차순이다.
4) Comparable을 구현한 클래스는 comparator를 이용해 내림차순 정렬이 불가능하다.
5) Arrays.sort()는 배열을 정렬할 때 Comparator를 지정해주지 않으면 저장하는 객체에 구현된 내용에 따라 정렬된다.


Q2. HashSet에 대해 틀린 것을 고르시오.

답 : 2

1) hashSet은 Set 인터페이스의 특징대로 중복된 요소를 저장하지 않는다.
2) hashSet은 저장순서를 유지한다.
3) add 메서드는 객체를 추가할 때 중복 객체가 있다면 저장하지 않는다.
4) 중복을 제거하는 동시에 저장한 순서를 유지하고자 한다면 LinkedHashSet을 사용해야 한다.
5) add 메서드는 새로운 요소를 추가하기 전 같은 것이 있는지 판별하기 위해 equals()와 hashCode()를 호출한다.



《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

Q1. [5, 8, 9, 6, 2, 1, 4 ]를 순서대로 TreeSet에 저장하면 어떤 구조로 저장되는지 아래 물음표를 채워 나타내시오.

               [5]
           /         \
       [2]             [8]
     /     \         /    \
   [1]     [4]     [6]    [9]


Q2. 아래 내용에 대해 옳은 것과 틀린 것을 구분하고, 틀린 것은 올바르게 고치시오.

o 1. TreeSet은 이진검색트리 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스로, red-black-tree로 구현되어 있다. ? 2. TreeSet은 생성자와 함께 주어진 컬렉션을 저장하도록 지정할 수 있다. x 3. TreeSet은 데이터의 삽입/삭제 및 정렬, 검색, 범위검색에 있어서 HashSet에 비해 시간적인 이점을 갖는다. 범위 검색과 정렬에 유리한 컬렉션 클래스는 hashSet x 4. TreeSet은 오로지 오름차순 정렬로만 저장되며, 이를 변경할 수 없다. 찍음 x 5. TreeSet은 모든 데이터를 반복적인 비교 후, 적절한 위치를 찾아 저장되기 때문에 중복값의 저장에도 문제 없다. 중복 저장 허용 x


《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오

1) put
2) get

여기부턴 아직 공부 못해서 못풀었슴니다...ㅠ


Q2. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

HashMap map = new HashMap();
1) Set set = map.entrySet();
2) set = map.keySet();
3) Collection values = map.values();


Q3. 질문

그 외 내용



《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1. java.util.Collection과 java.util.Collections에 대해 설명하세요

그 외 내용


Q2. 빈칸을 채우세요

기능 메서드
동기화 처리
unmodifiable
단 하나의 객체만 저장
checked


chaesuhyeon commented 2 years ago

《 Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

(ㄱ)인터페이스 : 순서가 있는 데이터의 집합, 데이터의 중복을 허용
(ㄴ)인터페이스 : 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음
(ㄷ)인터페이스 : 키와 값의 쌍으로 이루어진 데이터의 집합, 순서는 유지되지 않으며 키는 중복을 허용하지 않고 값은 중복을 허용 
(ㄹ) : (ㄱ)과 (ㄴ)의 공통부분을 추출한 것, 여러 객체를 모아놓은 것을 의미
(ㅁ) : 표준화, 정형화된 체계적인 프로그래밍 방식 

ㄱ : List / ㄴ : Set / ㄷ : Map / ㄹ : Collection / ㅁ : 컬렉션 프레임웍


Q2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

(1) List인터페이스를 구현한다
(2) 저장순서가 유지되고 중복을 허용하지 않는다
(3) 데이터의 저장공간으로 배열을 사용한다
(4) 자체적으로 동기화 처리되어 있다.

답 : 1, 3


《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1. 다음 중 옳지 않은 것 2개를 고르시오.

① 자바에서는 스택(Stack)과 큐(Queue)를 각각의 클래스로 정의되어 있다.

② 큐(Queue)의 메서드 중 객체를 꺼내는 `offer()` 와 객체를 삭제없이 읽어오는 `peek()`는 큐가 비어있을 경우, null을 반환한다.

③ LinkedList가 ArrayList보다 추가/삭제가 빠르다.

④ LinkedList는 데이터가 많을수록 접근시간이 길어진다.

⑤ LinkedList는 양방향 이동이 가능하다.

답 : 2 , 3


Q2. 빈 칸에 채워질 단어를 서술하시오.

"스택(Stack)" 은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 (  )구조로 되어있고,
"큐(Queue)" 는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 (  )구조로 되어있다.

답 : LIFO / FIFO

Q3. 배열(Array)의 단점 2가지를 서술하시오.

  1. 한번 선언하면 크기를 변경할 수 없음
  2. 삭제할 때 오래걸림



《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

ㄱ. Iterator
ㄴ. Enumeration
ㄷ. ListIterator

a. 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스
b. Iterator에 양방향 조회 기능 추가
c. Iterator의 구버전

답 : ㄱ-a , ㄴ-c , ㄷ-b


Q2. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 iterator()를 직접 호출할 수 없다. 이때 Interator를 얻기위해서는 어떻게 해야하는가?

답 : Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 iterator()를 직접 호출할 수 없고, keySet()이나 entrySet()과 같은 메서드를 통해서 키와 값을 각각 따로 Set의 형태로 얻어 온 후에 다시 iterator()를 호출해야 Iterator를 얻을 수 있다.


Q3. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

1. copyOf(), copyOfRange()  : 배열 복사
2. fill(), setAll() : 배열 채우기
3. sort() : 배열 정렬
4. equals() : 문자열 비교
5. toString() : 문자열 출력
6. asList(Object...a) :  배열을 List로 변환



《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1. Comparator와 Comparable에 대해 틀린 것을 고르시오.

1) Comparator 와 Comparable 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다.
2) Comparator는 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용한다.
3) Comparable을 구현하고 있는 클래스들은 기본적으로 오름차순이다.
4) Comparable을 구현한 클래스는 comparator를 이용해 내림차순 정렬이 불가능하다.
5) Arrays.sort()는 배열을 정렬할 때 Comparator를 지정해주지 않으면 저장하는 객체에 구현된 내용에 따라 정렬된다.

답 : 4

Q2. HashSet에 대해 틀린 것을 고르시오.

1) hashSet은 Set 인터페이스의 특징대로 중복된 요소를 저장하지 않는다.
2) hashSet은 저장순서를 유지한다.
3) add 메서드는 객체를 추가할 때 중복 객체가 있다면 저장하지 않는다.
4) 중복을 제거하는 동시에 저장한 순서를 유지하고자 한다면 LinkedHashSet을 사용해야 한다.
5) add 메서드는 새로운 요소를 추가하기 전 같은 것이 있는지 판별하기 위해 equals()와 hashCode()를 호출한다.

답 : 2



《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

Q1. [5, 8, 9, 6, 2, 1, 4 ]를 순서대로 TreeSet에 저장하면 어떤 구조로 저장되는지 아래 물음표를 채워 나타내시오.

               [5]
           /         \
       [2]             [8]
     /     \         /    \
   [1]     [4]     [6]    [9]

 ...
 (필요시 아래로 늘릴 것)


Q2. 아래 내용에 대해 옳은 것과 틀린 것을 구분하고, 틀린 것은 올바르게 고치시오.

  1. TreeSet은 이진검색트리 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스로, red-black-tree로 구현되어 있다.
  2. TreeSet은 생성자와 함께 주어진 컬렉션을 저장하도록 지정할 수 있다.
  3. TreeSet은 데이터의 삽입/삭제 및 정렬, 검색, 범위검색에 있어서 HashSet에 비해 시간적인 이점을 갖는다.
  4. TreeSet은 오로지 오름차순 정렬로만 저장되며, 이를 변경할 수 없다.
  5. TreeSet은 모든 데이터를 반복적인 비교 후, 적절한 위치를 찾아 저장되기 때문에 중복값의 저장에도 문제 없다. --> set이기 때문에 중복값 저장 x



《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오

1 : Object put() / 2 : Object get()

Q2. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

HashMap map = new HashMap();
1) Set set = map.entrySet();
2) set = map.keySet();
3) Collection values = map.values();

중복값이 제거되고 키와 값으로 분리되어 해시맵으로 저장


《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1. java.util.Collection과 java.util.Collections에 대해 설명하세요 -> Collection은 인터페이스, Collections는 클래스


Q2. 빈칸을 채우세요

기능 메서드
동기화 처리 synchronized
변경 불가 unmodifiable
단 하나의 객체만 저장 singleton
한 종류의 객체만 저장 checked


kcho32 commented 2 years ago
  1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

    (ㄱ) : List

    (ㄴ) : Set

    (ㄷ) : Map

    (ㄹ) : Collection

    (ㅁ) : 객체지향 프로그래밍?

  2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

    ① List인터페이스를 구현한다 → O ②저장순서가 유지되고 중복을 허용하지 않는다 → 허용 ③ 데이터의 저장공간으로 배열을 사용한다 → O ④ 자체적으로 동기화 처리되어 있다. → synchronized 메소드로 동기화 필요?

  3. 다음 중 옳지 않은 것 2개를 고르시오.

    ① 자바에서는 스택(Stack)과 큐(Queue)를 각각의 클래스로 정의되어 있다.

    ② 큐(Queue)의 메서드 중 객체를 꺼내는 offer() 와 객체를 삭제없이 읽어오는 peek()는 큐가 비어있을 경우, null을 반환한다. →offer: 저장

    ③ LinkedList가 ArrayList보다 추가/삭제가 빠르다.

    ④ LinkedList는 데이터가 많을수록 접근시간이 길어진다.

    ⑤ LinkedList는 양방향 이동이 가능하다.

  4. 빈 칸에 채워질 단어를 서술하시오.

    "스택(Stack)" 은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 (LIFO)구조로 되어있고, "큐(Queue)" 는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 (FIFO)구조로 되어있다.

  5. 배열(Array)의 단점 2가지를 서술하시오.

    ① ArrayList는 추가 삭제가 느리다

    ② LinkedList는 데이터 읽는 속도가 느리다 (데이터 많아질수록 더)

    잘 모르겠다

  6. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

    ㄱ. Iterator a ㄴ. Enumeration c ㄷ. ListIterator b

    a. 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스 b. Iterator에 양방향 조회 기능 추가 c. Iterator의 구버전

    (ㄱ, a), (ㄴ, c), (ㄷ, b)

  7. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 interator()를 직접 호출할 수 없다. 이때 Interator를 얻기위해서는 어떻게 해야하는가?

    entrySet을 통해 set으로 만들어주고 iterator 실시

  8. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

    1. copyOf(), copyOfRange() : Array 복사, 범위 복사
    2. fill(), setAll() : Array 채우기, 함수로 조건을 주고 채우기
    3. sort() : 정렬
    4. equals() : 값 비교 (주소 x)
    5. toString() : 배열을 String화
    6. asList(Object...a) : 배열 → 리스트
  9. Comparator와 Comparable에 대해 틀린 것을 고르시오.

    1. Comparator 와 Comparable 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다.
    2. Comparator는 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용한다.
    3. Comparable을 구현하고 있는 클래스들은 기본적으로 오름차순이다.
    4. Comparable을 구현한 클래스는 comparator를 이용해 내림차순 정렬이 불가능하다.
    5. Arrays.sort()는 배열을 정렬할 때 Comparator를 지정해주지 않으면 저장하는 객체에 구현된 내용에 따라 정렬된다.
  10. HashSet에 대해 틀린 것을 고르시오.

    1. hashSet은 Set 인터페이스의 특징대로 중복된 요소를 저장하지 않는다.
    2. hashSet은 저장순서를 유지한다. → set이라 사용 X, linkedHashSet 사용
    3. add 메서드는 객체를 추가할 때 중복 객체가 있다면 저장하지 않는다.
    4. 중복을 제거하는 동시에 저장한 순서를 유지하고자 한다면 LinkedHashSet을 사용해야 한다.
    5. add 메서드는 새로운 요소를 추가하기 전 같은 것이 있는지 판별하기 위해 equals()와 hashCode()를 호출한다.
  11. [5, 8, 9, 6, 2, 1, 4 ]를 순서대로 TreeSet에 저장하면 어떤 구조로 저장되는지 아래 물음표를 채워 나타내시오.

    [5] / \ [4] [6] / \ [2] [8] / \ [1] [9]
  12. 아래 내용에 대해 옳은 것과 틀린 것을 구분하고, 틀린 것은 올바르게 고치시오

    1. TreeSet은 이진검색트리 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스로, red-black-tree로 구현되어 있다. O
    2. TreeSet은 생성자와 함께 주어진 컬렉션을 저장하도록 지정할 수 있다. 모름
    3. TreeSet은 데이터의 삽입/삭제 및 정렬, 검색, 범위검색에 있어서 HashSet에 비해 시간적인 이점을 갖는다. O
    4. TreeSet은 오로지 오름차순 정렬로만 저장되며, 이를 변경할 수 없다. O
    5. TreeSet은 모든 데이터를 반복적인 비교 후, 적절한 위치를 찾아 저장되기 때문에 중복값의 저장에도 문제 없다. X → 중복 저장 없음
  13. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오

    put(key, value)

    get(key)

  14. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

    HashMap map = new HashMap();

    1. Set set = map.entrySet();
      1. map에 저장된 키와 값을 엔트리 형태로 set에 저장
    2. set = map.keySet();
      1. map에 저장된 모든 키를 set에 저장
    3. Collection values = map.values();
      1. map에 저장된 모든 값을 컬렉션 형태로 values에 저장
  15. java.util.Collection과 java.util.Collections에 대해 설명하세요

    java.util.Collection은 최상위 인터페이스로 Set, List, Queue 인터페이스가 이를 구현하고 있다.

    (Ex: ArrayList 클래스의 경우 Collection 인터페이스 → List 인터페이스 → ArrayList 클래스 순서로 구현)

    java.util.Collections는 클래스로 Collection과 관련된 메소드를 제공한다.

    (Ex: fill(), sort(), copy(), binarySearch() 등)

  16. 빈칸을 채우세요

    기능 | 메서드 -- | -- 동기화 처리 |     | unmodifiable 단 하나의 객체만 저장 |     | checked
red-Pen9uin commented 2 years ago

《 Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

ㄱ: list ㄴ: set ㄷ: map ㄹ: collections ㅁ:


Q2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

(1) List인터페이스를 구현한다 (3) 데이터의 저장공간으로 배열을 사용한다 (4) 자체적으로 동기화 처리되어 있다.



《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1. 다음 중 옳지 않은 것 2개를 고르시오.

② 큐(Queue)의 메서드 중 객체를 꺼내는 offer() 와 객체를 삭제없이 읽어오는 peek()는 큐가 비어있을 경우, null을 반환한다. ④ LinkedList는 데이터가 많을수록 접근시간이 길어진다.


Q2. 빈 칸에 채워질 단어를 서술하시오.

선입후출 FILO 선입선출 FIFO


Q3. 배열(Array)의 단점 2가지를 서술하시오.

  1. 사이즈를 재지정할 때 메모리를 새로 할당해야 함
  2. 중간에 존재하는 데이터를 삭제할 때 메모리를 새로 할당해야 함



《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

ㄱ-a ㄴ-c ㄷ-b


Q2. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 iterator()를 직접 호출할 수 없다. 이때 Iterator를 얻기위해서는 어떻게 해야하는가?

List로 변환한 뒤 Iterator를 호출한다.


Q3. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

객체 복사 객체 내용 채우기(값 지정, 초기화) 정렬 일치하는지 검사 문자열로 변환 리스트로 변환?



《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1. Comparator와 Comparable에 대해 틀린 것을 고르시오.

2, 3?, 4


Q2. HashSet에 대해 틀린 것을 고르시오.

2) hashSet은 저장순서를 유지한다...



《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

-


《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오

keyset(), values() ?


Q2. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

  1. map의 ...?
  2. map에 저장된 key값을 set에 저장
  3. map이 저장된 values를 이용해 collections 객체 생성



《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1. java.util.Collection과 java.util.Collections에 대해 설명하세요

?


Q2. 빈칸을 채우세요

기능 메서드
동기화 처리 ?
? unmodifiable
단 하나의 객체만 저장 ?
? checked


hanbikimm commented 2 years ago

Chap.1 : 컬렉션 프레임웍 ~ Chap.10 : ArrayList의 추가와 삭제 》

Q1. 다음 (ㄱ) ~ (ㅁ)에 대한 답을 적으시오

(ㄱ) list
(ㄴ) set
(ㄷ) map
(ㄹ) collection
(ㅁ) 프레임워크

Q2. 다음 중 ArrayList에 관해 맞는 것을 모두 고르시오

(1), (3)

《 Chap.12 : LinkedList ~ Chap.21 : Stack과 Queue의 활용 예제 》

Q1. 다음 중 옳지 않은 것 2개를 고르시오.

①: 큐는 인터페이스로만 정의 해놓았을 뿐 별도의 클래스를 제공하고 있지 않다.
⑤: LinkedList는 양방향 이동이 불가능하다.

Q2. 빈 칸에 채워질 단어를 서술하시오.

"스택(Stack)" 은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 ( LIFO )구조로 되어있고,
"큐(Queue)" 는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 ( FIFO )구조로 되어있다.

Q3. 배열(Array)의 단점 2가지를 서술하시오.

1. 배열의 크기가 정해지면 크기를 변경할 수 없다.
2. 비순차적인 데이터를 추가하고 삭제하는 데에 시간이 많이 걸린다.

《 Chap.22 : Iterator, ListIterator, Enumeration ~ Chap.29 : Arrays의 메서드 예제 》

Q1. 인터페이스(ㄱ,ㄴ,ㄷ)와 인터페이스의 기능(a,b,c)을 각각 짝지으시오.

(ㄱ)Iterator - (a) 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스
(ㄴ)Enumeration - (c) Iterator의 구버전
(ㄷ)ListIterator - (b) Iterator에 양방향 조회 기능 추가

Q2. Map인터페이스를 구현한 컬렉션 클래스는 key와 value를 pair로 저장하고 있기 때문에 interator()를 직접 호출할 수 없다. 이때 Interator를 얻기위해서는 어떻게 해야하는가?

keySet() 또는 entrySet()을 이용해 키와 값을 set 형태로 받아 온 후에 iterator()를 호출하면 된다.

Q3. 아래 단어들은 Arrays 메서드인데 각 메서드의 기능을 적으시오. (중요한 키워드만)

1. copyOf(), copyOfRange(): 배열 전체 또는 배열 일부를 복사해서 새로운 배열 만들어 반환
2. fill(): 배열의 모든 요소를 지정된 값으로 채움
 setAll(): 함수형 인터페이스를 매개변수로 받음
3. sort() : 배열 정렬
4. equals() : 두 배열에 저장된 모든 요소를 비교해 boolean값을 반환
5. toString() : 1차원 배열의 모든 요소를 문자열로 출력
6. asList(Object...a) : 배열을 리스트에 담아 반환

《 Chap.30 : Comparator와 Comparable ~ Chap.38 : HashSet 예제 》

Q1. Comparator와 Comparable에 대해 틀린 것을 고르시오.

4) Comparable을 구현한 클래스는 comparator를 이용해 내림차순 정렬이 불가능하다.

comparator를 이용하면 새로운 정렬 기준을 적용할 수 있으므로 내림차순 정렬이 가능하다.

Q2. HashSet에 대해 틀린 것을 고르시오.

2) hashSet은 저장순서를 유지한다.

hashSet은 저장 순서를 유지하지 않으며 LinkedHashSet을 사용해야 한다.

《 Chap.39 : TreeSet ~ Chap.45 : TreeSet 예제 》

Q1. [5, 8, 9, 6, 2, 1, 4 ]를 순서대로 TreeSet에 저장하면 어떤 구조로 저장되는지 아래 물음표를 채워 나타내시오.

        [5]
      /     \
    [2]     [8]
    /   \     / \
  [1]   [4] [6]   [9]

Q2. 아래 내용에 대해 옳은 것과 틀린 것을 구분하고, 틀린 것은 올바르게 고치시오.

옳은 것:
1, 2

틀린 것:
3: TreeSet은 데이터의 정렬, 검색, 범위 검색에 있어서는 시간적인 이점을 갖지만, 데이터의 삽입/삭제에는 시간이 걸린다.
4: TreeSet은 생성자를 사용해 정렬 기준을 만들 수 있다.
5: TreeSet은 중복값은 저장할 수 없다.

《 Chap.46 : HashMap과 Hashtable ~ Chap.51 : HashMap 예제 》

Q1. HashMap의 메서드 중 1)지정된 키와 값을 HashMap에 저장하는 메서드와 2) 지정된 키의 값을 반환하는 메서드를 적으시오

1) put()
2) get()

Q2. HashMap에 1), 2), 3) 메서드를 적용했을 때 어떤 변화가 일어나는지 적으시오

1) 엔트리 형태로 데이터가 저장됨
2) 모든 키값이 set형태로 저장됨
3) 모든 값이 collection 형태로 values에 저장됨

《 Chap.52 : Collections의 메서드 - 동기화 ~ Chap.56 : 컬렉션 클래스 정리 & 요약 》

Q1. java.util.Collection과 java.util.Collections에 대해 설명하세요

Q2. 빈칸을 채우세요

기능 | 메서드 -- | -- 동기화 처리 | Synchronized 읽기 전용, 수정 불가 | unmodifiable 단 하나의 객체만 저장 | Singletone 한 종류의 객체만 저장 | checked