Java/Data-Structure
-
SetJava/Data-Structure 2019. 8. 1. 21:37
■Set 인터페이스 - 중복을 허용하지 않음 - 구현 클래스 : HashSet, TreeSet, LinkedHashSet - 동기화를 지원하지 않는다.(Not Thread Safe) ■HashSet 클래스 - 내부 구현 : HashMap - 순서 없이 데이터 저장 - HashSet.add 과정HashMap.put(data,new Objtect) - HashSet.remove 과정HashMap.remove(data) - 데이터를 HashMap의 key를 이용해 저장하기 때문에 검색 속도가 빠르다 - 제네릭을 이용하여 HashSet을 사용할 경우, HashMap의 key 중복 검사에 해당 제네릭 클래스의 hashCode()와 equals()가 사용됨. 따라서 각 메소드들을 적절하게 재정의하는 것이 좋다. -..
-
ListJava/Data-Structure 2019. 8. 1. 21:33
■List 인터페이스 - 순서가 있고 중복을 허용. - 구현 클래스 : ArrayList, Vector, LinkedList ■ArrayList 클래스 - 내부 구현 : Object[] elementData; - 배열과 다르게 크기가 유동적이라는 것이 특징. - 내부 배열을 새로운 크기의 배열로 대체해 가며 유동적으로 관리. - ArrayList.add 과정1. Object[index] = element;2. 인덱스가 가득 찼을 경우, Arrays.copyOf메소드를 통해 Object[oldCapacity + (oldCapacity >> 1)]를 새로 생성해 복사함. - ArrayList.remove1. System.arraycopy(elementData, index+1, elementData, inde..