전체보기
-
12 (2) 지네릭스Java 2023. 5. 30. 00:03
Iterator - 클래스를 작성할 때, object타입 대신 T와 같은 타입 변수를 사용 HathMap - 여러 개의 타입 변수가 필요한 경우, 콤마(,)를 구분자로 선언 HashMap map = new HashMap( ); // 생성 map.put(“자바왕”, new Student("자바왕“,1,1,100,100,100)); // 데이터 저장 제한된 지네릭 클래스 - extends로 대입할 수 있는 타입을 제한 - 인터페이스인 경우에도 extends를 사용 지네릭스의 제약 - 타입 변수에 대입은 인스턴스 별로 다르게 가능 Box appleBox = new Box( ); // ok. Apple객체만 저장가능 Box grapeBox = new Box( ); // ok. Grape객체만 저장가능 ① sta..
-
12 (1) 지네릭스Java 2023. 5. 28. 21:22
지네릭스(Generics)란? - 컴파일시 타입을 체크해 주는 기능(compile-time type check) - JDK1.5 >> Tv만 저장하고 싶을 때 Tv로 타입을 지정, Tv만 저장가능 - 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 (하나의 컬렉션에는 대부분 한 종류의 객체만 저장) >> JDK1.5이후 제네릭 사용. 제네릭을 안써도 되지만 좋은 코드가 아님 타입 변수 - 클래스를 작성할 때, object타입 대신 타입 변수(T or E)를 선언해서 사용. - 객체를 생성시, 타입 변수(T or E) 대신 실제 타입(Tv)을 지정(대입) - 타입 변수 대신 실제 타입이 지정되면, 형변환 생략가능 지네릭스 용어 지네릭 타입과 다형성 - 참조 변수와 생성자의 대입된 타입은 일치해야 한..
-
11 (7) CollectionsJava 2023. 5. 27. 18:48
Collections - 컬렉션을 위한 메서드(static)를 제공 1. 컬렉션 채우기, 복사, 정렬, 검색 - fill( ), copy( ), sort( ), binarySearch( ) 등 2. 컬렉션의 동기화 - synchronizedXXX( ) 3. 변경불가(readOnly) 컬렉션 만들기 - unmodifiableXXX( ) 수정 불가 4. 싱글톤 컬렉션 만들기 - singletonXXX( ) ※싱글톤 : 객체 1개만 저장 5 한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX( ) - 컬렉션에 한가지 타입만 저장가능 컬렉션 클래스 정리 & 요약 (1/2) 컬렉션 클래스 정리 & 요약 (2/2) 출처 : 남궁성의 정석코딩 - YouTube 남궁성의 정석코딩 자바의 정석 동영상 강의 ..
-
11 (6) HashMapJava 2023. 5. 26. 21:34
HashMap과 TreeMap - 순서X, 중복(키X, 갑O) - Map 인터페이스를 구현, 데이터를 키와 값의 쌍으로 저장 - HashMap(동기화X)은 Hashtable(동기화O)의 신버전 ▶ HashMap - Map 인터페이스를 구현한 대표적인 컬렉션 클래스 - 순서를 유지하려면, LinkedHashMap클래스를 사용하면 된다. ▶ TreeMap - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashMap보다 데이터 추가, 삭제에 시간이 더 걸림 HashMap의 키(key)와 값(value) - 해싱(hashing) 기법으로 데이터를 저장. 데이터가 많아도 검색이 빠르다. ※Hash에는 ← 해싱(hashing) 기법이 들어가 있다 - Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장- Ma..
-
11 (5) TreeSetJava 2023. 5. 21. 20:41
TreeSet - 범위 검색과 정렬에 유리 - 이진 탐색 트리(binary search tree)로 구현. 범위 탐색과 정렬에 유리. - 이진 트리는 모든 노드가 최대 2개의 하위 노드를 가지고 있다 각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형) 이진 탐색 트리(binary search tree) - 부모보다 작은 값을 왼쪽 큰 값은 오른쪽에 저장 ※이진 트리에는 부모보다 작은 값, 큰값의 왼쪽 오른쪽 구분이 없다(자식 2개만 있으면 이진 트리) - 데이터가 많아질수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가) - TreeSet - 데이터 저장과정 boolean add(Object o) ※TreeSet에 7,4,9,1,5의 수선로 데이터를 저장하면, 아래의 과정을 거친..
-
11 (4) HashSetJava 2023. 5. 20. 22:12
Hashset - 순서X, 중복X ▶ Hashset - Set인터페스를 수현한 대표적인 컬렉션 클래스 - 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다. ▶ TreeSet - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashSet보다 데이터 추가, 삭제에 시간이 더 걸림 HashSet - 주요 메서드 ※컬렉션 클래스는 공간이 부족하면 스스로 공간을 늘린다 (보통 2배로 늘림) addAll - 합집합, remove - 교집합, retainAll - 차집합 HashSet - HashSet은 객체를 저장하기 전에 기존에 같은 객체가 있는지 확인 같은 객체가 없으면 저장하고, 있으면 저장하지 않는다. - boolean add(Object o)는 저장할 객체의 equals( )와 hashC..
-
11 (3) Iterator, Enumeration, Map과 IteratorJava 2023. 5. 19. 21:01
Iterator - 컬레션에 저장된 요소들을 읽어오는 방법을 표준화한 것 (List, Set) >> List → Set 잃어 올 때, Iterator를 이용하면 잃어오는 코드를 변경하지 않아도 된다 >> 추가 한다면? 결과값은 추가하지 않을 때와 같게 나온다 이유는 첫 번째 while(true) 두 번째 while(false) 값을 반환하기 때문이다 >> 두 번째 while(true)로 만든다면? it = list.iterator( ); 추가 한다 it = list.iterator( ); // 1회용이라서 다쓰고나면 다시 얻어와야 한다 - keySet( ), entrySet( ), values( )를 호출해서 가져 올 수 있다 Arrays - 배열을 다루기 편리한 메서드(static) 제공 1. 배열의 ..
-
11 (2) Stack과 QueueJava 2023. 5. 15. 20:45
Stack과 Queue ▶ 스택(Stack) : LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다. - 수식계산, 수식괄호검사, undo/redo, 뒤로/앞으로(웹브라우져) 배열에 유리 ▶ 큐(Queue) : FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. - 최근 사용문서, 인쇄 작업 대기목록, 버퍼(buffer) LinkedList에 유리 스택과 큐(Stack & Queue)의 메서드 - 스택 메서드 >> Stack st = new Stack( ); - 큐 메서드 >>삭제 : remove( )와 poll( ) 차이점 // 추가 : add( )는 예외발생 offer( ) 예외X >> 큐는 인터페이스로 정의되어 있어 객체를 생성하지 못한다 - Queue q = new Queue( ..