티스토리 뷰

반응형

※대학생이 공부하다가 작성한 글입니다※

※정답이 아닐 수도 있습니다※


 

⊙ 문제 1

 

자바의 컬렉션 프레임워크를 설명한 내용으로 틀린 것은?

 

  1. 컬렉션 프레임워크는 Collection 인터페이스와 Collection 클래스로 제공한다.
  2. Vector는 List 인터페이스의 구현 클래스이다.
  3. HashMap 클래스는 Collection 인터페이스의 구현 클래스이다.
  4. LinkedList는 Queue 인터페이스의 구현 클래스이다.

⊙ 정답

 

3번 HashMap 클래스는 Collection 인터페이스의 구현 클래스이다.

 

※해설: HashMap 클래스는 Map 인터페이스의 구현 클래스이다.


⊙ 문제 2

 

다음 중 키와 값으로 구성된 객체를 저장하는 자료구조로 적합한 것은?

 

  1. Vector
  2. HashSet
  3. TreeSet
  4. Hashtable

⊙ 정답

 

4번 Hashtable

 

※해설: 키와 값으로 구성된 객체는 Map이다. 키와 값이 나오면 자동으로 Map을 떠올리자.


⊙ 문제 3

 

다음 중 올바른 것은?

 

  1. Set은 중복된 원소를 가질 수 있다.
  2. Map은 중복된 키를 가질 수 있다.
  3. HashSet과 Hashtable은 다른 인터페이스의 구현 클래스이다.
  4. Vector는 ArrayList와 동일한 구조이지만 스레드에 안전하지 않다.

⊙ 정답

 

3번 HashSet과 Hashtable은 다른 인터페이스의 구현 클래스이다.

 

※해설 : Vector는 한 번에 하나의 스레드만 접근이 가능하 안전하다.


⊙ 문제 4

 

다음 코드를 실행하면 예외가 발생한다. 그 이유는?

 

public class List1Test {
    public static void main(String[] args) {
        String[] s = {"사과","바나나"};
        List<String> list = Arrays.asList(s);

        list.add("컵케익");
        list.forEach(v -> System.out.println(v+" "));
    }
}

⊙ 정답

 

일반적인 배열은 크기가 정해져 있기 때문에 크기를 넘어서 추가하면 오류가 발생한다.

 

※해설 : ArrayList는 크기가 가변적으로 변하는 선형 리스트이다. AraayList를 사용하여 오류를 해결하자. 아래 코드와 같다.

 

public class List1Test {
    public static void main(String[] args) {
        String[] s = {"사과","바나나"};
        List<String> list = new ArrayList<>();

        for(int i=0;i<s.length;i++)
            list.add(s[i]);

        list.add("컵케익");
        list.forEach(v -> System.out.println(v+" "));
    }
}

⊙ 문제 5

 

String 타입의 키와 정수 값이 있는 HashMap 객체를 생성하려고 한다. 다음 코드에서 밑줄 그은 부분에 적합한 내용은?

 

________ 변수 = new ________;

⊙ 정답

 

HashMap<String,Integer> 변수 = new HashMap<>();

⊙ 문제 6

 

다음 코드에서 ① 부분을 forEach() 메서드로 나타내시오.

 

public class Main {
    public static void main(String[] args) {
        Stack<Integer> si = new Stack<>();
        si.add(10);
        si.add(20);
        si.add(1,100);

        for(int value:si)                      // ①
            System.out.println(value + " ");   //
    }
}

⊙ 정답

 

public class Main {
    public static void main(String[] args) {
        Stack<Integer> si = new Stack<>();
        si.add(10);
        si.add(20);
        si.add(1,100);

        si.stream().forEach(x-> System.out.println(x));
    }
}

 


⊙ 문제 7

 

다음 코드에서 밑줄 그은 부분에 적합한 타입은?

 

__________ stream = Arrays.stream(new double[] {1.0, 2.0, 3.0});

⊙ 정답

 

DoubleStream

 


⊙ 문제 8

 

영한사전을 도전 과제와 다른 방식으로 만들려고 한다. 영어 단어용 키로 'eng', 한글 단어용 키로 'han'을 사용하며, 키에 대응하는 값을 추가한 후 영한사전을 출력하려고 한다. 다음은 2개의 단어를 포함하는 테스트 프로그램과 실행 결과이다. 밑줄 그은 부분에 적절한 코드를 채워 넣으시오.

 

public class List2Test {
    public static void main(String[] args) {
        List<__________> list = new ArrayList<>();
        HashMap<__________> map;
        
        map = new __________;
        map.put("eng","boy");
        map.put("han","머스마");
        list.add(map);
        
        map = new __________;
        map.put("eng", "girl");
        map.put("han", "가시나");
        list.add(map);
        
        list.forEach(m-> System.out.println(m.get("eng") + " = " + m.get("han")));
    }
}

⊙ 정답

 

public class List2Test {
    public static void main(String[] args) {
        List<HashMap> list = new ArrayList<>();
        HashMap<String, String> map;

        map = new HashMap<>();
        map.put("eng","boy");
        map.put("han","머스마");
        list.add(map);

        map = new HashMap<>();
        map.put("eng", "girl");
        map.put("han", "가시나");
        list.add(map);

        list.forEach(m-> System.out.println(m.get("eng") + " = " + m.get("han")));
    }
}

 

 

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함