java/ㄴ CHAPTER 11. 컬렉션 프레임워크
-
CHAPTER 11. (7) 동기화란? ( ★★★ 각 Collection 차이 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 15:04
★ Arrays, Collections 란? - Arrays : 배열과 관련된 메서드 제공 - Collections : 컬렉션과 관련된 메서드 제공 ㄴ 공통 : fill(), copy(), sort(), binarySearch() ★ Collections, Collection 차이? - Collections는 클래스 - Collection은 인터페이스 동기화 - 멀티쓰레드 프로그래밍 환경 ㄴ 1. 하나의 객체를 여러 쓰레드가 동시 접근 가능 ㄴ 2. 데이터 무결성 유지 위해 동기화 필요 ★ Vector (ArrayList), HashTable (HashMap) 차이? - Vector, HashTable은 자체적으로 동기화 처리 가능 (but 멀티쓰레드 프로그래밍 아닌 경우 불필요한 기능 => 성능 감소의..
-
CHAPTER 11. (6) HashSet이란? (TreeSet, HashMap 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:59
HashSet - Set 인터페이스를 구현한 가장 대표적인 컬렉션 - 중복 요소 저장 X - 요소 추가 시 add(), addAll() 메서드 사용 - 이미 저장된 요소를 중복 추가시 false 반환 (추가 실패) => 중복 요소 쉽게 제거 - 저장 순서 유지 X (순서 유지 원할시 LinkedHashSet 사용) 메서드 - boolean add(Object o) : 새로운 객체 저장 (성공시 true, 실패시 false) - void clear() : 주어진 모든 객체 삭제 - boolean isEmpty() : HashSet이 비어있는지 확인 - Iterator iterator() : Iterator 반환 - boolean remove(Object o) : 지정된 객체 HashSet에서 삭제 (성공시..
-
CHAPTER 11. (5) Comparable 이란? (Comparator 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:57
Comparable - java.lang 패키지 - 컬렉션 정렬하는데 필요한 메서드를 정의한 인터페이스 - 같은 타입 인스턴스끼리 비교하는 클래스들 (Wrapper, String, Date, File 등) - 오름차순 (작은값->큰값) - 정렬 가능 - compareTo(Object o) : 반환값 int, 비교하는 두 객체가 같으면 0, 값보다 작으면 음수, 크면 양수 ㄴ객체 자신과 o를 비교 ㄴ 기본 정렬기준 구현시 사용 ex. public interface Comparable { int compareTo(Object o); // 객체 자신과 o를 비교 } Comparator - java.util 패키지 - 컬렉션 정렬하는데 필요한 메서드를 정의한 인터페이스 - compare(Object o1, Ob..
-
CHAPTER 11. (4) 스택, 큐란? (Iterator, Arrays 메서드, 배열검색방법 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:50
스택, 큐 - 스택 : 마지막 저장 데이터를 가장 먼저 꺼냄 (LIFO 후입선출) // ArrayList 사용 - 큐 : 첫번째 저장 데이터 가장 먼저 꺼냄 (FIFO 선입선출) // LinkedList 사용 왜 ArrayList는 큐 사용에 비효율적인가? ㄴ큐는 데이터 꺼낼 때마다 첫번째 데이터가 삭제되어 빈 공간을 채우기 위해 복사가 발생하기 때문에 비효율적, ArrayList는 순차적인 추가/삭제에 좋은 스택에 더 효율적 스택 메서드 - boolean empty() : Stack 비어있는지 확인 - Object peek() : Stack 맨 위에 저장된 객체 반환, 객체를 꺼내지는 않음 - Object pop() : Stack 맨 위에 저장된 객체 꺼냄 - Object push(Object item..
-
CHAPTER 11. (3) ArrayList란? (LinkedList 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:37
ArrayList - 가장 많이 사용되는 컬랙션 클래스 - Vector 개선 (Vector와 구현원리, 기능적인 측면 동일) - Object 배열 이용, 데이터 순차적으로 저장 Vector : 기존에 작성된 소스와의 호환성을 위해 남겨놓는 중, 가능하면 ArrayList 사용 권장 특징 - 저장순서 유지 - 중복 허용 - 순차적 저장 중 더 이상 저장 공간이 없다면, 더 큰 배열 생성 후 기존의 배열에 저장된 내용을 새로운 배열로 복사, 저장 - 선언된 배열 타입 Object (모든 종류 객체 담기 가능) 메서드 - boolean add(Object o) : ArrayList의 마지막에 객체 추가, 성공하면 true - boolean addAll(Collection c) : 주어진 컬렉션의 모든 객체 저..
-
CHAPTER 11. (2) List란? (Set, Map 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:34
List - 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용 특징 - 순서가 있는 데이터 집합 - 데이터 중복을 허용 ㄴ 구현 클래스 : ArrayList, LinkedList, Stack, Vector 등 메서드 - void add(int index, Object element) : 지정된 위치(index)에 객체(element)를 추가 - Object get(int index) : 지정된 위치(index)에 있는 객체 반환 - int indexOf(Object o) : 지정된 객체의 위치(index)를 반환 - Object remove(int index) : 지정된 위치(index)에 있는 객체 삭제, 삭제된 객체 반환 - Object set(int index, Object elemen..
-
CHAPTER 11. (1) ★ 컬렉션 프레임워크란? (Collection 포함)java/ㄴ CHAPTER 11. 컬렉션 프레임워크 2020. 4. 23. 14:33
★ 컬렉션 프레임워크 - 클래스들을 표준화한 설계 => 1. 다수의 데이터들을 저장하는 클래스들 2. 과거엔 그 클래스들을 각자의 방식으로 처리해야 했음 3. but 프레임워크의 등장으로 인해 모든 클래스들을 표준화된 방식으로 다룰 수 있도록 체계화 됨 장점 - 다양하고 풍부한 클래스들을 제공, 프로그래머의 부담을 덜어줌 - 표준화되어 있기 때문에 사용법 익히기 편함 - 재사용성 높은 코드 작성 가능 ★ 라이브러리, 프레임워크 차이? - 라이브러리 : 공통으로 사용될만한 유용한 기능을 모듈화하여 제공 (도구? 공구?) - 프레임워크 : 단순한 기능 뿐 아니라 프로그래밍 방식을 정형화하여 개발 생산성 증가, 유지보수 용이하게 함 (장난감 키트? 지켜야 하는 규약?) 컬렉션 프레임워크 종류 (인터페이스 3종..