Day 20

·2023년 7월 4일
0

Global_2023_2

목록 보기
19/56
post-thumbnail

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

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

정수(-1이 입력될 때까지)>> 10 6 22 6 88 77 -1
가장 큰 수는 88

	List<Integer> list = new LinkedList<>();
	Scanner sc = new Scanner(System.in);
	System.out.println("정수 (-1이 입력 될때까지)>>");
	
	while(true) {
		try {
			int num = sc.nextInt();
			if(num == -1)
				break;
			list.add(num);
		} catch (Exception e) {
			System.out.println("잘못");
			sc = new Scanner(System.in);
			continue;
		}
	}
	int max = 0;
	for(int num : list) {
		if(num > max)
			max = num;
	}
	System.out.println(list);
	System.out.println("가장 큰 수는:"+max);

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

  • Map (Mapping의 약자)
    • 컬랙션 프레임워크의 상속을 받지 않음 (add 대신 put)
    • 키 / 밸류 방식 (예시 : 출석부)

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

    	for (Map.Entry<Integer, String> itr : map.entrySet()) {
      System.out.println(itr.getKey() + " " + itr.getValue());

4. Treemap 과 Hashmap 의 차이는?

  • Treemap은 순서를 지정해서 저장가능

  • Hashmap은 순서를 지정할수 없지만 더 빠르다

5. Deque 로 Stack 을 구현하시오.

  • 저장과 출력이 동시에 이루어 지는것

1.IO stream 이란?

  • IO스트림(인풋/아웃풋)

    • 1.8 버전부터 그냥 스트림과 다른 I/O 스트림이 나옴

    • 인풋 입력(read) / 아웃풋 출력(write)

    • 빨대의 원리 (단방향)

    • 실무에선 main에 throws 하지 말고(테스트용) try catch로

    • 1.7부터 try 안에 ()괄호 가능

    • 읽고 쓰기는 1바이트씩 되는 원리

2.보조스트림에 대하여 설명하시오.

  • 필터 스트림 : 수도꼭지 필터 같은것
    • 부족한 기능을 보충
    • 출력/입력 모두 자바 쪽에 붙는다

3. 문자 스트림과 바이트 스트림의 차이는?

  • 문자와 숫자는 1:1 매칭
    • 문자스트림은 캐릭터라서 2byte 단위로 저장 (바이트는 1byte)

4. 아래의 조건에 따라 copy 프로그램을 완성하시오.

  • buffered 보조스트림 달것:
    ===============
    대상 파일: F:\a.java
    사본 이름: F:\b.java
    카피 되었습니다.

        Scanner sc = new Scanner(System.in);
        System.out.print("대상 파일: ");
        String src = sc.nextLine();
    
        System.out.print("사본 이름: ");
        String dst = sc.nextLine();
    
        try(BufferedInputStream in = 
                   new BufferedInputStream(new FileInputStream(src)) ;
            BufferedOutputStream out = 
                   new BufferedOutputStream(new FileOutputStream(dst))) {
    
            int data;
            int count = 1;
            while(true) {
                data = in.read();             
                if(data == -1)
                    break;             
                out.write(data);
                System.out.println("횟수"+count++);
            }
        }
        catch(IOException e) {
            e.printStackTrace();       
        }
        System.out.println("카피 되었습니다");

5. try - with - resource 에 대하여 설명하시오.

try(BufferedWriter writer = Files.newBufferedWriter(file)) { //여기 바로 객체생성해버림
writer.write('A’);
writer.write('Z');   //try 구문을 빠져나갈때 다음문장을 안정적으로 자동실행 writer.close(); 클로즈 내부에서 자동 실행
}
catch(IOException e) {
e.printStackTrace();
}
  • 1.7 버전부터 제공되는 try catch finally의 업그레이드 버전

  • try안에 resources(=객체)가 들어간다.

    • 객체 생성해서 집어 넣는 것
      (해당 리소스에 대한 클로즈를 안에서 내부적으로 알아서 해준다.)
  • try-with-resources 기반의 오픈 및 종료 대상이 되기 위한 조건

    • java.lang.AutoCloseable 인터페이스의 구현

5년은 잡아야 지식이 쌓인다🧙‍♂️


Point

  • 대표적인 hash 알고리즘 MD5 SHA256
  • 2의 10승은 1024

    • 버퍼링 : 미리 메모리에 채워 놓는것

      (밝은 회색 부분)

    • BufferdOutputStream은 반드시 달아야 한다.

0개의 댓글