컬렉션 특징 ArrayList 배열기반, 데이터의 추가와 삭제에 불리, 순차적인 추가/삭제는 제일 빠름, 임의의 요소(인덱스를 알때)에 대한 접근성이 뛰어남 LinkedList 연결기반, 데이터의 추가와 삭제에 유리, 임의의 요소에 대한 접근성이 좋지않다. HashMap 배열과 연결이 결합된 형태. 추가/삭제/검색/접근성이 모두 뛰어남. 검색에는 최고성능을 보인다. TreeMap 연결기반. 정렬과 검색(특히, 범위검색)에 적합. 검색성능은 HashMap보다 떨어짐 Stack Vector를 상속받아 구현 (LIFO) Queue LinkedList가 Queue 인터페이스 구현 (FIFO) Properties HashTable을 상속받아 구현 (파일 Read / Write 용이) (String,String 구..
Collections 컬렉션과 갈련된 메소드르 제공하는 클래스 컬렉션의 동기화 멀티 스레드 프로그래밍에서는 하나의 객체를 여러 쓰레드가 동시에 접근할 수 있기 때문에 데이터의 일관성을 유지하기 위해서는 공유되는 객체에 동기화가 필요하다. 구버전의 Vector와 HashTable 클래스들은 자체적으로 동기화 처리가 되어 있는데, 불필요한 기능이 되어 성능을 떨어뜨리는 요인이 돼서 새로 추가된 ArrayList와 HashMap과 같은 컬렉션은 동기화를 자체적으로 처리하지 않고 필요한 경우 Java.util.Colletions클래스의 동기화 메서드를 이용해서 처리하도록 변경하였다. //동기화 메서드들 static Colletion synchronizedColletion(Colletion c) static Li..
Properties properties는 Hashtable을 상속받아 구현한 것으로, HashTable과 달리 키와 값을 (Object, Object)로 저장하지 않고 (String,String)으로 저장하는 보다 단순화된 컬렉션 클레스이다. 주로 어플리케이션의 환경설정과 관련된 속성(property)을 저장하는데 사용되며 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공한다. 그래서 간단한 입출력은 Properties를 이용하면 몇 줄의 코드로 쉽게 해결될 수 있다. 메서드 설명 Properties() Properties객체를 생성한다. Properties(Properties defaults) 지정된 Properties에 저장된 목록을 가진 객체 생성 String getProperty(String ke..
해싱이란 해싱함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다. 해시함수는 데이터가 저장되어 있는 곳을 알려주기 때문에 다량의 데이터 중에서도 원하는 데이터를 빠르게 찾을 수 있다. 해싱을 구현한 컬렉션 클래스로는 HashSet, HashMap, HashTable 등이 있다. Hashtable은 컬렉션 프레임웍이 도입되면서 HashMap으로 대체 되었으나 이전 소프트웨어 호환 문제로 남겨 두고 있다. 해싱에서 사용하는 자료구조는 배열과 링크드 리스트의 조합으로 되어있다. 해싱 예제 1 ① 검색하고자 하는 값의 키로 해시함수를 호출 ② 해시함수의 계산결과(해시코드)로 해당 값이 저장되어 있는 링크드 리스트를 찾는다. ③ 링크드 리스트에서 검색한 키와 일치하는 데이터를 찾는다 링크드 리스..