반응형
HashSet HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션으로, 중복된 요소를 저장하지 않습니다. 그렇기 때문에 HashSet에 이미 저장되어 있는 요소를 추가하고자 한다면 객체를 저장하기 전에, 먼저 객체의 hashCode()메소드를 호출해서 해시 코드를 얻어낸 다음 저장되어 있는 객체들의 해시 코드와 비교한 뒤 같은 해시 코드가 있다면 다시 equals() 메소드로 두 객체를 비교해서 true가 나오면 동일한 객체로 판단하고 중복 저장을 하지 않습니다. ArrayList와 달리 저장순서를 유지하지 않기 때문에, 저장순서를 유지하고자 한다면 LinkedHashSet을 사용해야합니다. HashSet 선언 import java.util.HashSet; HashSet set = new Ha..
Comparable과 Comparator는 인터페이스로 실제 소스는 다음과 같습니다. public interface comparable { public int compareTo(Object o1, Object o2); } public interface comparator { int compare(Object o1, Object o2); boolean equals(Object obj); } 인터페이스이기에 Comparable이나 Comparator을 사용하고자 한다면 인터페이스 내에 선언된 메소드를 반드시 구현해야합니다. compareTo()와 compare()는 선언형태와 이름이 약간 다를 뿐 두 객체를 비교한다는 같은 기능을 목적으로 만들어졌습니다. compareTo() 반환값은 int이지만, 실제로는..
Collections는 클래스로 Collection 인터페이스와 다릅니다. Collections 클래스 안의 메서드들은 static이기 때문에 인스턴스를 생성하지 않고 바로 사용 가능합니다. Collections 클래스는 Collection 인터페이스로 구현한 클래스들에 대한 객체생성, 정렬(sort), 병합(merge), 검색(serch) 등의 기능을 수행하도록 도와주는 클래스입니다. Collection 인터페이스로 구현한 클래스에 대한 설명은 아래 포스팅을 통해 알 수 있습니다. [Java/자바] 컬렉션 프레임워크(Collections Framework) 컬렉션 프레임워크란 "다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미" 합니다. 즉, 데이터를 저장하..
Iterator iterator()는 Collection 인터페이스에 정의된 메서드로, Collection 인터페이스의 자손인 List와 Set에도 포함되어 있습니다. 그래서 List나 Set인터페이스를 구현하는 컬렉션은 iterator()가 각 컬렉션의 특징에 맞게 포함되어 있습니다. Map 인터페이스를 구현한 클래스의 경우에는 key - value 쌍으로 저장하기 때문에 iterator()를 직접호출 할 수 없고, keySet()이나 entrySet() 메서드를 통해 키와 값을 Set형태로 얻은 뒤 iterator()를 호출할 수 있습니다. Map map = new HashMap(); Iterator it = map.entrySet().iterator(); iterator() 메서드는 반복문, 주로 ..
기본적인 형태의 배열 ( array )는 구조가 간단하여 사용하기가 쉽고, 데이터를 읽어오는데 걸리는 시간이 가장 빠르다는 장점을 가지고 있습니다. 하지만 아래와 같은 단점도 가지고 있습니다. Array ( 배열 ) 의 단점 1. 크기를 변경할 수 없다. 크기를 변경할 수 없기 때문에 새로운 배열을 생성해서 데이터를 복사해야한다. 2. 메모리 낭비 실행속도를 향상시키기 위해선 충분히 큰 크기의 배열을 생성해야 하므로 메모리가 낭비된다. 3. 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸린다. 차례대로 데이터를 추가하고 마지막에서부터 데이터를 삭제하는 것은 빠르지만, 배열의 중간에 데이터를 추가하려면, 빈자리를 만들기 위해 다른 데이터들을 복사해서 이동해야한다. LinkedList는 이러한 단점을 ..
ArrayList ArrayList는 List 인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 가집니다. Object배열을 이용해 데이터를 순차적으로 index는 0부터 시작하고 그 다음은 1,2,3 ~ 순으로 저장됩니다. 만약 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음 저장됩니다. 또한 선언된 배열의 타입이 모든 객체의 최고조상인 Object이기 때문에 모든 종류의 객체를 담을 수 있습니다. ArrayList 선언 import java.util.ArrayList; ArrayList arraylist1 = new ArrayList(); ArrayList arraylist2 = new Arra..