JAVA

이것이 자바다 15장 확인문제 풀이 (컬렉션 프레임워크)

Adev 2022. 9. 16. 16:04

1. 컬렉션 프레임워크 - 배열의 문제점을 해결하고, 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.utill 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함시켜 놓은 것을 총칭한다.
답 : 4
Stack은 LIFO(후입선출) 자료구조를 구현한 클래스이다.

 


2. List 컬렉션 - 객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공한다.
답 : 3
ArrayList에서 객체를 삭제하면 삭제된 위치는 앞으로 1씩 당겨진다.


3. Set 컬렉션 - 수학의 집합에 비유될 수 있다. 순서와 상관없고 중복이 허용되지 않기 때문이다.
답 : 4 
Set 컬렉션에는 null을 저장할 수 있다. 
//객체를 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다.


4. Map 컬렉션 - 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있다.
답 : 3
멀티 스레드 환경에서는 Hashtable이 HashMap보다 스레드에 안전하다.


5. 
List<Board> list = new ArrayList<Board>();

 


6.
Map<String, Integer> map = new HashMap<String, Integer>();


7.

package verify.exam07;

import java.util.ArrayList;
import java.util.List;

public class BoardDao2 {
public List<Board> getBoardList() {
List<Board> list = new ArrayList<Board>();
list.add(new Board("제목1", "내용1"));
list.add(new Board("제목2", "내용2"));
list.add(new Board("제목3", "내용3"));
return list;
}
}



8.

package verify.exam08;

public class Student2 {
public int studentNum;
public String name;

public Student2 (int studentNum, String name) {
this.studentNum = studentNum;
this.name = name;
}

@Override
public int hashCode() {
return studentNum;
}

@Override
public boolean equals(Object obj) {
if(!(obj instanceof Student)) return false;
Student student = (Student) obj;
if(studentNum != student.studentNum) return false;
return true;
}
}



9.

package verify.exam09;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapExample2 {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("blue", 96);
map.put("hong", 86);
map.put("white", 92);

String name = null;
int maxScore = 0;
int totalScore = 0;

Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for(Map.Entry<String, Integer> entry : entrySet) {
if(entry.getValue()>maxScore) {
name = entry.getKey();
maxScore = entry.getValue();
}
totalScore += entry.getValue();
}

int avgScore = totalScore / map.size();
System.out.println("평균점수 : " + avgScore);
System.out.println("최고점수 : " + maxScore);
System.out.println("최고점수를 받은 아이디 : " + name);
}
}



10.

package verify.exam10;

public class Student2 implements Comparable<Student2> {
public String id;
public int score;

public Student2 (String id, int score) {
this.id = id;
this.score = score;
}

@Override
public int compareTo(Student2 o) {
if(score < o.score) return -1;
else if(score == o.score) return 0;
else return 1;
}
}