JAVA/JAVA 멘토시리즈

[JAVA 멘토시리즈] 응용 문제 풀이 (컬렉션 프레임워크)

웹코린이 2023. 6. 1. 20:37
728x90

1. 다음 중 컬렉션의 설명으로 틀린 것은 무엇입니까 ?

  1. List 컬렉션은 index로 객체를 관리하며 중복 저장을 허용합니다.
  2. set 컬렉션은 순서를 유지하지 않으며 중복 저장을 허용하지 않습니다.
  3. Map 컬렉션은 key와 value로 구성된 Map.Entry를 저장합니다.
  4. LinkedList는 List 컬렉션과 동일하게 index로 객체를 관리합니다.

 

더보기

4. LinkedList는 노드(node) 객체를 생성하여 인접 데이터를 링크해서 체인처럼 관리한다.

 

2. 다음 빈칸에 알맞은 코드를 작성해 보세요.

public class Test01 {
	public static void main(String[] args) {
    	List ???? list = new ArrayList<>(); // 문제
        
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        
        for(int i = 0; i < list.size(); i++) {
        	System.out.println(list.get(i));
        }
    }
}

 

더보기

배열리스트의 값들은 모두 정수형이므로 int로 강제해주는 것이 관리가 편하므로, 

List<Integer> list = new ArrayList<Integer>(); 로 수정해야 한다. 

 

3. 다음 중 Set 컬렉션에 대한 설명으로 틀린 것은 무엇입니까 ?

  1. 대표적인 구현 클래스로는 HashSet, LinkedHashSet, TreeSet이 있습니다.
  2. Set 컬렉션에서 객체를 하나씩 꺼내오고 싶다면 Iterator를 이용합니다.
  3. HashSet은 hashCode()와 equals()를 이용해 중복된 객체를 판별합니다.
  4. Set 컬렉션에는 null을 저장할 수 없습니다.

 

더보기

4. Set 컬렉션에 null도 저장할 수 있다. 

 

4. 랜덤 함수를 사용해 리스트 컬렉션에 10개의 숫자를 입력한 후 입력된 숫자 중에서 짝수의 합을 구하여 출력해보세요.

public class ArrayListSumExample {
	public static void main(String[] args) {
    	List<Integer> list = new ArrayList<>();
        
        for(int i = 0; i < 10; i++) {
        
        	// 랜덤 함수를 이용해 숫자 넣기
        }
        int sum = 0;
        for(int i = 0; i < list.size(); i++) {
        	// 랜덤 함수를 이용해 숫자 넣기
        }
        System.out.println("짝수의 합: " + sum);
    }
}

 

더보기

먼저 선언부에 Random rand = new Random(); 을 선언한다.

 

첫번째 for문 안에 실행될 문장

 

datas.add(rand.nextInt(100) + 1);  --> 1 ~ 100 사이의 랜덤 숫자 배열리스트에 추가

 

두번째 for문 안에 실행될 문장


if(datas.get(i) % 2 == 0) {

       sum += datas.get(i);

}

 

위와 같이 수정.

 

728x90