자바에서 입출력 하는 법/ 자바 스택,큐,덱 라이브러리

michuchu·2022년 4월 29일
0

java

목록 보기
1/5
  1. 자바에서 입력 받는 방법
  • scanner 로 입력받기

    Scanner sc= next Scanner(System.in);
    sc.next();  
    sc.nextLine();

    next() : 띄어쓰기 구분해서 한 word 만 받을 때 / 개행문자 무시

    nextLine() : 한 줄 전체를 받을때 /개행문자까지를 한줄로 인식하지만 개행문자는 버림

    nextXXX() 메서드

    nextInt(), nextFloat(), nextByte(), nextShort(), nextDouble(), nextLong(), next()입니다.

    주의 scanner 에서 nextXXX() method 다음에 nextLine() 쓸때 한번 더 받아주깅

    이유 :

    Scanner 클래스에서 7개의 nextXXX() 메서드 중 하나 다음에 nextLine() 메서드를 호출하면 nextLine()은 콘솔에서 값을 읽지 않고 커서가 콘솔로 들어오지 않고 해당 단계를 건너뛴다.
    이 문제는 BufferReader 클래스에서는 발생하지 않고 , 스캐너 클래스에서만 발생합니다. nextXXX() 메서드가 줄 바꿈 문자를 무시하고 nextLine()이 첫 번째 줄 바꿈 문자까지만 읽기 때문이다.

    nextXXX()와 nextLine() 사이에 nextLine() 메서드를 한 번 더 호출하면 nextLine()이 개행 문자를 소비하기 때문에 이 문제가 발생하지 않습니다.

  • BufferReader로 입력받기

    
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.*in*));
    
    bf.readLine() // 개행 문자는 읽지 않음```

  1. 출력시 사용하는 BufferedWriter

    자바에서 출력할 때는 system.out.print 대신에 BufferedWriter를 사용한다.

    
    BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.*out*));`
    
    bw.write("hello");
    
    bw.flush();  //bw.write() 는 콘솔에 출력하는 것이 아니라 버퍼에 저장해둠. 그래서 bw.flush()로 비워줘야함 
    
     bw.close()  //다 사용했으면 닫아주기
    

  1. Java stack 라이브러리 사용법

    Stack<Integer> stack2= new Stack<Integer>();

    stack.peek() : top 알 수 있음
    stack.push()
    stack.empty() : 비었을 시 1
    stack.size()
    stack.pop()

스택 자료구조를 쓰게되는 경우는? 한번에 거꾸로 뒤집을일이 있을 때..?

무언가 순차적으로 실행이 되는데 "마지막"의 것이 의미를 가진다면 Stack을 사용하자!!


  1. 자료구조(큐, 덱)

    1. 큐
    
        큐는 어떤 자료형을 순서대로 사용해야 할 때 쓴다. (FIFO)
    
        [begin - end)
    
         ex ) BFS 알고리즘에서 유용하게 쓰이니 기억!! 
         
    //큐 라이브러리 사용 방법
    Queue<Integer> queue2= new LinkedList<>();
    pop : queue2.offer
    push : queue2.poll
    front : queue2.peek
    empty : queue2.isEmpty  // empty 이면 true
    remove(첫번째 값 제거) : queue2.remove()
    clear : queue2.clear //초기화 

    2. 덱

        양끝에서만 자료를 넣고 양 끝에서 뺄 수 있는  자료 구조

        마찬가지로 BFS에서 쓰임
profile
라따뚜이 인생이란

0개의 댓글