📚 Stack 클래스 Stack클래스는 List컬렉션 클래스의 Vector클래스를 상속받아, 전형적인 스택 메모리 구조의 클래스를 제공한다. 스택메모리 구조는 선형 메모리 공간에 데이터를 저장하면서 후입선출(LIFO)을 따르는 자료구조 이다. 가장 나중에 저장된(PUSH) 데이터가 가장 먼저 인출(POP)되는 구조이다. 메서드 설 명 boolean empty( ) Stack 이 비어있는지 알려줌 Object peek( ) Stack 의 맨 위에 저장된 객체를 반환 pop( ) 과 달리 Stack 에서 객체를 꺼내지 않음(비었을 때는 EmptyStackException 발생) Object pop( ) Stack 의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStackException 발생) Obje..
퀵정렬 | 퀵 정렬이란 ? 분할정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이다. 분할 정복(Divide and conquer)방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략 분할 정복은 대개 순환 호출을 이용하여 구현한다. 하나의 리스트를 피벗(Pivot)을 기준으로 두 개의 비균등한 크기로 분할하고 분할된 부분 리스트르 정렬한 다음, 두개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법 퀵 정렬의 단계 분할(Divide) : 입력 배열을 피벗을 기준으로 비균등하게 2개의 부분 배열로 분할 한다 (왼쪽 : 피벗보다 작은 요소, 오른쪽 : 피벗보다 큰 요소) 정복(Conquer) : 부분 배열을..
파일 쓰기 writerFile 함수의 상세 소스를 보자 실행하면 아래와 같은 결과를 알수 있다. 특히 FileWriter(fileName, false) 부분을 보면 두 번째 매개변수가 false이면 파일을 새롭게 덮어씌워서 생성을 하고, true로 변경을 하면 해당 내용 뒤에 추가로 이어서 쓰기가 진행된다. 파일 읽기 아래의 readFile함수를 실행하자 위에서 쓰여졌던 내용들이 출력된다.
flush() - 어떤 리소스에 데이터를 쓸 때, 매번 쓰기작업을 할 때마다 저장하면 효율이 안 좋아진다. 예를 들어 누군가 마루에 있을 때 안방에 가서 연필을 가져오고, 휴지도 가져오고, 노트도 가져오라고 시켯을 때, 세번 안방에 가서 가져오는 것보다 한번에 가서 가져오는 것이 효과적이다. 따라서, 대부분 저장을 할 때 버퍼(buffer)를 갖고 데이터를 차고 차곡 쌓아 두었다가 어느 정도 차게 되면 한번에 쓰는 것이 좋다. 그러한 버퍼를 사용 할 때, flush() 메소드는 "현재 버퍼에 있는 내용을 지금 저장해"라고 시키는 것이다.