이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. TreeSet - 범위 탐색, 정렬 - 이진 탐색 트리(binary search tree)로 구현. 범위 탐색과 정렬에 유리 - 이진 트리는 모든 노드가 최대 2개(0~2)의 하위 노드를 가짐 각 요소(node)가 나무(tree) 형태로 연결(LinkedList의 변형) //트리 노드 class TreeNode { TreeNode left; //왼쪽 자식노드 Object element; //저장할 객체 TreeNode right; //오른쪽 자식노드 } //LinkedList 노드 class Node { Node next; //다음 요소의 주소를 저장 Object obj; //데이터를 저장 } 2. 이진 탐색 트리(..
전체 글
기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 순서X, 중복X ⚝ HashSet - Set인터페이스를 구현한 대표적인 컬렉션 클래스 - 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다. ⚝ TreeSet - 범위 검색과 정렬에 유리한 컬렉션 클래스 - (데이터가 많을수록) HashSet보다 데이터 추가, 삭제에 시간이 더 걸림 2. 주요 메서드 ⚝ 생성자 HashSet() HashSet(Collection c) HashSet(int initialCapacity) 초기용량 HashSet(int initialCapacity, float loadFactor) initialCapacity는 초기용량이다. 용량을 초과하면 보통 2배로 늘리는데 언제 늘릴..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. Comparator와 Comparable - 객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스 Comparable 기본 정렬기준을 구현하는데 사용 Comaprator 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용 o1 > o2 : 양수 o1 == o2 : 같다 o1 < o2 : 음수 - compareTo는 o와 this를 비교함. - 정렬(sort)은 두 대상을 비교해서 자리바꿈하는 것을 반복하는 것이다. - compare()와 compareTo()는 두 객체의 비교결과를 반환하도록 작성 같으면 0, 오른쪽이 크면 음수(-), 작으면 양수(+) 오름차순은 1,2,3,4....순이다. 따라서 7,..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 배열을 다루기 편리한 메서드(static) 제공 비슷한 것으로 Math, Objects, Collections라는 클래스가 있고 유용한 메서드를 제공한다. ⚝ 배열의 출력 - toString() static String toString(boolean[] a) static String toString(byte[] a) static String toString(char[] a) static String toString(short[] a) static String toString(int[] a) static String toString(long[] a) static String toString(float[] a) stat..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. Iterator, ListIterator, Enumeration - 컬렉션에 저장된 데이터를 접근(읽어오기)하는데 사용되는 인터페이스 - Enumeration은 Iterator의 구버전 - ListIterator는 Iterator의 접근성을 향상시킨 것 (단방향 -> 양방향) ⚝ Iterator 인터페이스의 메서드 메서드 설명 boolean hasNext() 읽어 올 요소가 남아있는지 확인. 있으면 true, 없으면 false 반환 Object next() 다음 요소를 읽어온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전 void remove() next()로..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. Stack과 Queue의 활용 ⚝ 스택의 활용 예 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로 ⚝ 큐의 활용 예 최근사용문서, 인쇄작업 대기목록, 버퍼 (buffer) ⍟실습1 Stack 더보기 package etc; import java.util.EmptyStackException; import java.util.Stack; public class Ex11_3 { public static void main(String[] args) { // if(args.length != 1){ // System.out.println("Usage:java Ex11_3 \"EXPRESSION\..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 스택과 큐 (Stack & Queue) - 스택 (Stack) : LIFO 구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다. - 큐 (Queue) : FIFO 구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. 스택 - 밑이 막힌 상자 - 저장할 때와 추출할 때 순서가 반대 큐 - 양끝이 뚫린 상자 - 저장할 때와 추출할 때 순서가 동일 Stack과 Queue를 구현한다고 할 때, 배열과 LinkedList 중 어느 것이 더 효율적일까? Stack은 배열이고, Queue는 LinkedList이다. 2. 스택과 큐 (Stack & Queue)의 메서드 ⚝ Stack의 메서드 메서드 설명 boolean empty..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 배열의 장단점 ⚝ 장점 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다. 배열은 연속적이다. 예를 들어, int배열이라고 하면 하나가 4btye이다. 그렇다면 3이라는 데이터를 읽을려고 한다면, 0x100 + 4 * 2를 하면 된다. 즉, 배열주소+ 배열 요소 크기 * 인덱스(n) = 내가 원하는 주소를 알 수 있다. (-> n+1번째 요소를 알 수 있음. n+1인 이유는 index가 0부터 시작하므로 ) ⚝ 단점 1. 크기를 변경할 수 없다. - 크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야함. (코드로 작성은 못 해도 설명은 해야함. ) ① 더 ..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. ArrayList - ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적을 동일 ArrayList와 달리 Vector는 자체적으로 동기화처리가 되어 있다. - List인터페이스를 구현하므로, 저장순서가 유지되고 중복을 허용한다. - 데이터의 저장공간으로 배열을 사용한다. (배열 기반) 더보기 Vector를 자세히 살펴보면 객체 배열이 있다. Object(객체) 배열에는 모든 종류의 객체를 저장할 수 있음 2. ArrayList의 메서드 ⚝ 생성자 - ArrayList() : 기본 생성자 - ArrayList(Collection c) : 매개변수로 컬렉션을 주면, 컬렉션에 저장된 것을 ArrayL..
유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 컬렉션 프레임(collections framework) ⚝ 컬렉션 collection 여러 객체(데이터)를 모아 놓은 것을 의미 ⚝ 프레임웍 framework 표준화, 정형화된 체계적인 프로그래밍 방식 생산성, 유지보수가 쉬워짐 ⚝ 컬렉션 프레임웍(collectios framework) - 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공 객체를 다룬다? 다수의 데이터를 저장, 삭제, 검색, 정렬 등을 할 수 있다는 것 - java.util패키지에 포함. JDK1.2부터 제공 ⚝ 컬렉션 클래스(collection class) - 다수의 데이터를 저장할 ..