HashMap, Hashtabel - 순서X, 중복(키X,값O) Map 인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장 HashMap(동기화X)은 Hashtable(동기화O)의 신버전 순서를 유지하려면, LinkedHashMap을 사용 TreeMap 범위 검색과 정렬에 유리한 컬렉션 클래스 HashMap보다 데이터 추가, 삭제에 시간이 더 걸림 해싱(hashing)기법으로 데이터를 저장. 데이터가 많아도 검색이 빠르다. 해싱(hashing) 해시함수(hash function)로 해시테이블(hash table)에 데이터를 저장,검색 해시테이블은 배열과 링크드리스트가 조합된 형태 (배열의 접근성, 링크드리스트의 변경 유리) 키로 해시함수를 호출해서 해시코드를 얻는다. 해시코드에 대응하는 링크드리스트를 배..
정의 HashSet - 순서X, 중복X Set인터페이스를 구현한 대표적인 컬렉션 클래스 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다. TreeSet - 범위 탐색, 정렬 범위 검색(from~ to, 10~20)과 정렬에 유리한 컬렉션 클래스 HashSet보다 데이터 추가, 삭제에 시간이 더 걸림 이진 탐색 트리(binary search tree)로 구현. 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖음 HashSet 주요 생성자와 메서드 HashSet(Collection c) : 생성자 HashSet(int initialCapacity) : 초기용량 정하기 (보통 2배로 늘린다.) HashSet(int initialCapacity, float loadFactor) : 언제 2..
Arrays - 배열을 다루기 편리한 메서드 배열의 출력 - toString() 배열의 복사 - copyOf(), copyOfRange() 배열 채우기 - fill(), setAll() 배열의 정렬과 검색 - sort(), binarySearch() cf) binarySearch()는 정렬된 배열만 검색 가능 다차원 배열의 출력 - deepToString() 다차원 배열의 비교 - deepEquals() 배열을 List로 변환 - asList(Object...) cf) 읽기전용이라 list.add() 추가하기 위해서는 new ArrayList()로 객체를 생성해야한다. Comparator, Comparable (정렬기준) - 객체 정렬에 필요한 메서드를 정의한 인터페이스
Iterator(단방향), ListIterator(양방향), Enumeration(구버전) 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 Iterator 컬렉션 종류(List, Set)에 상관없이 저장된 요소들을 읽어오는 방법을 표준화 한것. Map은 Collection의 자손이 아니라서 iterator가 없다. 메서드 hasNext() : 읽어올 요소가 남아있는지 확인, 있으면 true next() : 다음 요소를 읽어온다. pervious() : 이전 요소를 읽어온다. (ListIterator에만 구현) 코드예제 List list = new ArrayList(); Iterator it = list.iterator(); while(it.hasNext()){ System.out.println(i..

Stack 특징 LIFO(Last In First Out) 구조, 저장(push), 추출(pop) 구현 ArrayList로 구현하는 것이 적합 활용 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로 Queue 특징 FIFO(First In First Out) 구조, 저장(offer), 추출(poll) 구현 LinkedList로 구현하는것이 적합 interface로 정의됨 -> 객체 생성 불가 : Queue 직접구현, 구현된 클래스 사용 ex) 직접구현 : Queue q = new Queue(){}; 구현된 클래스 사용 : Queue q = new LinkedList(); 활용 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
ArrayList 특징 기본 Vector개선 한것, 배열기반으로 데이터 저장, 순서와 중복 O, 객체만 저장가능 메서드 추가 add -> autoboxing에 의해 자동으로 참조형 형변환 addAll 삭제 remove removeAll clear : 모든 객체 삭제 검색 indexOf lastIndexOf contains : 해당(or 모든) 요소가 포함하는지 확인 get 변경 set 그 외 subList : 일부의 새로운 list 생성 toArray : ArrayList의 객체배열을 반환 isEmpty : 비어있는지 확인 trimToSize : 빈공간 제거 size : 저장된 객체의 갯수 LinkedList 배열의 장단점 장점 : 구조가 간단, 데이터 읽는데 걸리는 시간이 짧음, 순차적 데이터 추가,삭..
컬렉션(collection) : 여러 객체(데이터)를 모아 놓은 것을 의미 프레임웍(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식 ex) spring 라이브러리 : 정보, 책, 오디오 라이브러리 등 -> 기능만 제공 컬렉션 프레임웍 : 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식, java.util패키지에 포함, jdk1.2부터 제공 컬렉션 클래스(collection class) : 다수의 데이터를 저장할 수 있느 클래스 ex) Vector, ArrayList, HashSet 컬렉션 프레임웍의 핵심 인터페이스 List : 순서O, 중복O ex) 대기자 명단 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set : 순서X, 중복X ex..