전체 글

기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 제네릭(Generics)란? - 컴파일시 타입을 체크해 주는 기능(compile-time type check) - JDK1.5 //Tv객체만 저장할 수 있는 ArrayList를 생성 ArrayList tvList = new ArrayList(); tvList.add(new Tv()); //OK tvList.add(new Audio()); //컴파일 에러. Tv 외에 다른 타입은 저장 불가 - 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 (하나의 컬렉션에는 대부분 한 종류의 객체만 저장) 제네릭의 장점 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. Except..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. Collections ⚝ 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch() 등 ⚝ 컬렉션의 동기화 - synchronizedXXX() - vector와 ArrayList 모두 배열 기반 컬렉션이다. 이 둘의 차이는 동기화(13장.쓰레드)였다. 과거에는 무조건 동기화가 되어있었다. 그런데 동기화가 필요하지 않을 때는 불필요한 기능이 되어서 ArrayList에서는 메서드로 빼서 필요할 때만 사용하도록 했다. - 사용법 List syncList = Collections.synchronizedList(new ArrayList(...));​​ 동기화되지 않은 리스트를..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. HashMap과 Hashtable - 순서X, 중복(키X, 값O) - Map 인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장 - HashMap(동기화X)은 Hashtable(동기화O)의 신버전 TreeMap은 TreeSet처럼 이진탐색트리이다. ⚝ HashMap - Map인터페이스를 구현한 대표적인 컬렉션 클래스 - 순서를 유지하려면, LinkedHashMap클래스를 사용하면 된다. ⚝ TreeMap - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashMap보다 데이터 추가, 삭제에 시간이 더 걸림 2. HashMap의 키(key)와 값(value) - 해싱(hashing)기법으로 데이터를 저장. 데이터가 많..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂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..
i_zzy
Izzy's blog