본문 바로가기

Java18

자바 스택과 큐(Stack & Queue) 그리고 LIFO, FIFO 스택 - LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다. - 밑이 막힌 상자. - 넣는걸 쌓고 쌓인게 부터 꺼냄 -큐 - FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. - 양 끝이 뚫린 상자 - 줄서기 구조, 줄을 먼저 선 사람부터 업무를 본다. 사실 나는 Stack과 Queue를 여러번 공부했지만, 나중가면 둘이 굉장히 헷갈렸다. 나는 게임 '리그오브레전드'를 인용하여 이를 공부하였다. - 야 큐 돌려 할 때쓰는 큐이다. (게임 매칭 시스템) - 큐 돌리면 대게 먼저 돌리는 사람이 먼저 게임이 잡히게 된다. 나는 Stack을 롤(LoL)에서 코르키 스택이라고 부른다. 왼쪽에서부터 채워지고(push) 오른쪽에서부터 사용(pop)한다. (LIFO구조) 스택의 메소드 메소드 설명.. 2022. 1. 16.
자바 컬렉션프레임워크 LinkedList의 특징 LinkedList의 특징을 알아보기 이전에 기존 배열의 특징을 알아볼 필요가 있다. 배열의 장단점 장점: 배열은 구조가 간단하고 데이터를 읽는 데 처리 시간이 짧다. 단점: 배열의 크기를 지정하고 나면 변경할 수 없다. [크기를 변경해야 하는 경우] 새로운 배열을 생성 후 데이터를 복사해야 한다. [크기 변경을 피하기 위해] 선언 시 공간이 큰 배열을 선언하게 되면 메모리가 낭비된다. 비순차적인 데이터의 처리(추가, 삭제)에 시간이 많이 걸린다. (배열의 안쪽의 데이터 요소들) => 자리를 옮겨서 복사를 해야함 반대로 순차적 삭제(배열의 맨 앞, 혹은 맨 뒤)는 빠르다. linkedList 배열과 달리 불연속적으로 존재하는 데이터를 연결함 배열은 각 요소가 연속적 장점: 단 한 번의 참조변경으로 데이터.. 2022. 1. 15.
자바 스트림(Stream)과 파일 입출력(File I/O) - java.io.File 스트림 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 - 파일로부터 입력을 받는 스트림을 입력스트림, - 출력을 보내는 스트림을 출력스트림 - 바이너리 형태로 데이터를 입출력하는 스트림을 이진스트림, - 문자형태로 입출력하는 스트림을 텍스트스트림 스트림만들기 중간연산(여러번) -> 최종연산(한번) => (순서대로) 중복제거, 5개 자르기, 정렬 => [하나씩 꺼내서 출력하기] - 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐 변경하지 않음 (원본은 그대로) - 스트림은 Iterator처럼 일회용이다. (필요하면 다시 스트림 생성) - 최종 연산 전까지 중간연산이 수행되지 않는다. (지연된 연산) - 스트림은 작업을 내부 반복으로 처리한다. - 스트림의 작업을 병렬로 처리 (병렬스트림) - 파일.. 2022. 1. 13.
자바 컬렉션프레임워크 HashMap, HashTable 순서, 중복 알아보기 자바 컬렉션 프레임워크(List, Set, Map) 이전 내용은 위 링크를 참고해주세요 Map Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장 - 순서는 존재하지 않는다. - 중복여부( key : x / value : o ) => ID는 중복할 수 없지만, password는 중복이 된다고 생각 TreeMap (TreeSet과 같은 특성을 지님) - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashMap보다 데이터 추가, 삭제에 시간이 더 소모 HashMap (TreeSet과 같은 특성을 지님) - Map 인터페이스를 구현한 대표적인 컬렉션 클래스 - Map 인터페이스는 순서를 유지하지 않지만, LinkedHashMap클래스를 사용하면 순서 유지가 가능 HashMap의 키와 값 (key & v.. 2022. 1. 12.