JAVA deque, map (230704)

이원건·2023년 7월 4일
0

JAVA

목록 보기
30/33
post-thumbnail

1. 다음을 프로그래밍 하시오.

  • 문제

Scanner 클래스로 -1이 입력될 때까지
양의 정수를 입력 받아 저장하고
검색하여 가장 큰 수를 출력하는
프로그램을 작성하라.

  • 출력
정수(-1이 입력될 때까지)>> 10 6 22 6 88 77 -1
가장 큰 수는 88
  • 코드
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class DocsExample3 {
	public static void main(String[] args) {
		
		List<Integer> numList = new ArrayList<>();
		Scanner scanner = new Scanner(System.in);
		int num;
		System.out.print("정수(-1이 입력될 때까지)>> ");
		while(true) {
			num = 0;
			try {
				num = scanner.nextInt();
			}catch(Exception e) {
				scanner.nextLine();
				System.out.println("정수를 다시 입력하세요.");
				continue;
			}
			if(num == -1) break;
			
			numList.add(num);
			
		}
		int maxValue = Integer.MIN_VALUE;
		for(Integer n : numList)
			maxValue = maxValue > n ? maxValue : n;
		System.out.println(numList);
		System.out.println("가장 큰 수는 " + maxValue);
		
	}
}
  • 실행 결과
정수(-1이 입력될 때까지)>> 6 10 6 88 22 77 -1
[6, 10, 6, 88, 22, 77]
가장 큰 수는 88

2. Map 에 대하여 설명하시오.

  • Map이란 Key와 Value를 기반으로 만든 순서 없는 자료 구조이다.
    Key는 중복되지 않는다. Set으로 구현되어 있다.

3. 아래의 TreeMap의 Value를 확인 하기 위한 소스를 짜시오.(필수)

  • 문제
  • 순차적으로 나오도록 돌리시오
TreeMap<Integer, String> map = new TreeMap<>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
  • 출력
45 Brown
37 James
23 Martin
  • 코드
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class DocsExample2 {
	public static void main(String[] args) {
		TreeMap<Integer, String> map = new TreeMap<>();
		map.put(45, "Brown");
		map.put(37, "James");
		map.put(23, "Martin");
		
		Set<Integer> set = map.keySet();	
		for(Iterator<Integer> iter = set.iterator(); iter.hasNext();) {
			Integer num = iter.next();
			System.out.println(num + " " + map.get(num));
			
		}
	}
}
  • 실행 결과
23 Martin
37 James
45 Brown

  1. Treemap 과 Hashmap 의 차이는?
  • Treemap은 binary Tree를 기반으로 map을 구현한 것이고 Hashmap은 Hash를 기반으로 Map을 구현한 것이다.
    Treemap은 binary tree가 기반이기 때문에 생성 시 정렬을 하면서 들어가게 된다. Hashmap은 hash algorithm을 통해 검색하기 때문에 검색이 더 빠르다.

  1. Deque 로 Stack 을 구현하시오.
  • 코드
import java.util.ArrayDeque;
import java.util.Deque;

public class ArrayDequeCollection {
	public static void main(String[] args) {
		Deque<String> deq = new ArrayDeque<>();
		
		//앞으로 넣고  
		deq.offerFirst("1. Box");
		deq.offerFirst("2. Toy");
		deq.offerFirst("3. Robot");
		
		
		//앞에서 꺼내기
		System.out.println(deq.pollFirst());
		System.out.println(deq.pollFirst());
		System.out.println(deq.pollFirst());
		
	}
}
  • 실행 결과
3. Robot
2. Toy
1. Box

0개의 댓글