목록Java/JAVA2 (37)
충분히 쌓여가는
HashMap과 Hashtable - 순서 X, 중복(키X, 값O) Map 인터페이스를 구현, 데이터를 키와 값의 쌍으로 저장 HashMap(동기화 X)은 Hashtable(동기화 O)의 신버전 HashMap Map 인터페이스를 구현한 대표적인 컬렉션 클래스 순서를 유지하려면, LinkedHashMap 클래스를 사용하면 된다 TreeMap(≒ TreeSet) 범위 대상과 정렬에 유리한 컬렉션 클래스 HashMap보다 데이터 추가, 삭제에 시간이 더 걸림(비교하면서 저장하기 때문) HashMap의 Key와 Value Hashing 기법으로 데이터를 저장, 데이터가 많아도 검색이 빠르다 Map 인터페이스를 구현, 데이터를 key와 value의 쌍으로 저장 키(key) 컬랙션 내의 키(key) 중에서 유일해야..
TreeSet의 주요 생성자와 메서드 생성자 또는 메서드 설명 TreeSet() 기본 생성자 TreeSet(Collcetion c) 주어진 컬렉션을 저장하는 TreeSet을 생성 TreeSet(Comparator comp) 주어진 정렬기준으로 정렬하는 TreeSet을 생성 Object first() 정렬된 순서에서 첫 번째 객체를 반환한다 Object last() 정렬된 순서에서 마지막 객체를 반환한다 Object ceiling(Object o) 지정된 객체와 같은 객체를 반환, 없으면 큰 값을 가진 객체 중 제일 가까운 값의 객체를 반환, 없으면 null Object floor(Object o) 지정된 객체와 같은 객체를 반환, 없으면 작은 값을 가진 객체 중 제일 가까운 값을 객체를 반환, 없으면 n..
TreeSet - 범위 탐색, 정렬 이진 탐색 트리(binary search tree)로 구현, 범위 탐색과 정렬에 유리 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다 각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형) class TreeNode { TreeNode left; // 왼쪽 자식노드 Object element; // 저장할 객체 TreeNode right; // 오른쪽 자식노드 } 이진 탐색 트리(binary search tree) 부모보다 작은 값은 왼쪽 큰 값은 오른쪽에 저장 단점: 데이터가 많아질 수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가) TreeSet - 데이터 저장과정 boolean add(Object o)
HashSet 객체를 저장하기 전에 기존에 같은 객체가 있는지 확인(순서를 유지하지 않고, 중복을 허용하지 않기 때문) boolean add(Object o)는 저장할 객체의 equals()와 hashCode()를 호출(equals()와 hashCode()가 오버라이딩 되어 있어야한다) class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return name + ":" + age; } } public boolean equals(Object obj) { if(!(obj instanceof Person)) return false..