반응형
[Scanner and BufferedReader]
Scanner
//Scanner를 사용했을시 입력 형태.
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // int
long l = sc.nextLong(); // int
String s = sc.next(); // String
String s = sc.nextLine(); // String
BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
StringTokenizer st = new StringTokenizer(br.readLine());
// AB CDD EFFF GH 입력
st.nextToken() // AB
st.nextToken() // CDD
st.nextToken() // EFFF
st.nextToken() // GH
차이점
BufferedReader를 사용할때와 Scanner의 속도가 차이가 나는 이유는 buffer 사용 여부의 차이입니다.
Scanner는 1KB 크기의 버퍼를 갖기 때문에 입력이 바로 전달되는 반면,
BufferedReader는 8KB 크기의 버퍼를 가져 buffer에 입력들을 저장하였다 한 번에 전송하기 때문에 속도가 더 빠릅니다.
또한, Scanner는 입력을 읽는 과정에서 내부에서 정규 표현식 적용, 입력값 분할, 파싱 과정 등을 거치기 때문에 속도가 느립니다.
반응형
'programming language > Java' 카테고리의 다른 글
람다문이란? (0) | 2024.01.27 |
---|---|
인터페이스와 추상클래스의 차이점은?? (1) | 2023.12.05 |
forEachRemaining() 메서드와 for문의 성능차이는? (1) | 2023.11.25 |
asiterator().foreachremaining() 이란? (1) | 2023.11.25 |
Stack, Queue 와 Deque 중 무엇이 더 효율적일까? (0) | 2023.11.09 |