
큐(Queue) : 선입선출(FIFO, First-In-First-Out) 방식으로 요소를 관리하는 자료구조 - 맨 앞에서부터 요소가 하나씩 제거되고, 새로운 요소는 항상 뒤에서 추가됨. - 키보드 입력에 많이 쓰이곤 합니다. 자바에서는 Queue 인터페이스를 구현한 여러 클래스가 제공되며, 그 중 대표적인 클래스로는 LinkedList와 PriorityQueue가 있다. 1. LinkedList : LinkedList는 이중 연결 리스트(doubly linked list)를 구현한 클래스 - LinkedList를 이용해 구현한 큐는 삽입과 삭제가 매우 빠르지만, 검색 속도가 느리다. 2. PriorityQueue : 이진 힙(binary heap)을 기반으로 하는 클래스로, 우선순위 큐(priority..
Map : 키와 값으로 (쌍으로) 데이터를 저장하는 자료구조 - 나중에 자바스크립트에서 데이터 넘어올 때 Map 형식으로 넘어오게 되므로 중요하다!!! 형태 Map - 특이한 지점은 Key를 통해 Value 값을 받음. - Key를 모르면 Value에 접근할 수 없으므로 주의해야 함. Key 는 Set 형식으로 들어온다. 그래서 Set이 좀 불편하더라도 알고 있어야 하는 것... 대표적인 사례 클래스 설명 HashMap - 가장 일반적으로 사용되는 해시 테이블(hash table)을 구현한 클래스. - 키와 값으로 이루어진 요소들을 저장하며, 순서를 보장하지 않는다. TreeMap - 이진 검색 트리(binary search tree)를 구현한 클래스. - 키에 대한 정렬을 유지하며, 키의 순서에 따라 ..

Set : 중복된 값을 저장하지 않는 집합(Set) 자료구조의 기능을 정의하는 인터페이스. - Set은 순서에 상관없이 요소를 저장하며, 중복된 값을 허용하지 않음. - 대표적인 클래스로는 HashSet, TreeSet, LinkedHashSet이 있음. HashSet : 해시 테이블(hash table)을 구현한 클래스, 가장 빠른 검색 속도를 제공. - 순서를 보장하지 않지만, 중복된 값을 허용하지 않음 TreeSet : 이진 검색 트리(binary search tree)를 구현한 클래스로, 요소를 자동으로 정렬함. - TreeSet은 검색 속도가 빠르지만, HashSet보다는 느리다. LinkedHashSet : LinkedHashSet은 해시 테이블과 연결 리스트(linked list)를 결합한 ..
파일 입출력 - 자바 콘솔 출력과 파일을 연동하여 파일 읽고 쓰기라고 생각하면 됨. 예제를 통해 익히기 1. 파일 쓰기 // 파일 입출력 public class FileWriterTest { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); String str = "자바는 정말 쉬워요! \n" + "오늘 숙제는 2개입니다. \n" + "주말 숙제는 4개입니다."; char[] change = new char[str.length()]; // 문자열을 문자열 길이의 배열으로 만들고 str.getChars(0, str.length(), change, 0); //처음부터 str의 길이만큼을..

Stack - 쉽게 말하면 쌓는 것. First In Last Out push로 넣고, pop으로 빼고. Stack 예제 public class StackTest { public static void main(String[] args) { Stack stackSample = new Stack(); System.out.println("스택에 push 1 : " + stackSample.push("경기도")); System.out.println("스택에 push 2 : " + stackSample.push("충청도")); System.out.println("스택에 push 3 : " + stackSample.push("강원도")); System.out.println("스택에 push 4 : " + stack..
리스트의 주요 명령어 명령어 기능 Add(객체) 추가 (추가 => 끼워넣기!!) Add(index, 객체) index에 추가 addAll(index, Collection) index 지정위치에 Collection 추가 (리스트를 통으로 끼워넣는 것. 나머지 다 밀) get(index) index 위치의 객체를 주는 것 indexOf(객체) index 위치를 반환 lastIndexOf(객체) 그 객체의 가장 마지막 index를 반환 remove(index) index 위치의 객체를 삭제 set(index, 객체) index 위치의 객체 교체(위치를 바꿔치기!) size() 리스트의 길이 subList(from, to) from ~ to 까지의 객체를 List로 반환 리스트 예제 1 public class ..

자료구조 : 데이터를 특정 구조로 모아놓은 것 자바에서의 자료구조 - 리스트(List), 집합(Set), 맵(Map) 등. 자료구조 특징 관련 인터페이스 관련 클래스 List (배열과 비슷) - 순서가 있음 - 데이터의 중복 가능 Collection List ArrayList LinkedList Stack(FILO) Set - 순서가 없음 Collection Set HashSet TreeSet LinkedHashSet Map - 키와 값으로 구성 - 키는 중복 불가 - 값은 중복 가능 (Key 키 , Value 값) Map HashMap TreeMap 간단한 설명 1. ArrayList - 점점 뒤로 붙여간다. 배열과 특징이 많이 유사 2. Set - 순서 딱히 없이 중구난방으로 퍼져있음. - 연결 되어..

배열의 단점 -> 1. 같은 자료형만 담을 수 있음(이를 해소하는 게 클래스) 2. 개수가 제한됨 - 객체가 생성될 때 클래스 안에 있는 자료형이 선택이 됩니다 내가 B를 만들려는 순간에 자료형이 세팅이 되어 바뀐다는 뜻. 단, 참조자료형만 됩니다. 기본자료형 X 결론은 안에 클래스밖에 안 된다는 뜻! 제네릭 예제 class Box { T vol; void setVolume(T vol) { this.vol = vol; } T getVolume() { return vol; } } public class GenericTest { public static void main(String[] args) { Box ibox = new Box(); ibox.setVolume(200); //ibox.setVolume(..