HashMap은 Map 인터페이스를 구현하여 Map의 특징 키(key)와 값(value)를 묶어서 하나의 데이터(entry)로 저장한다는 특징을 가집니다. 그리고, 해싱(hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보여줍니다. HashMap은 키와 값을 각각 Object타입으로 저장합니다. 즉 (Object, Object)의 형태로 저장하기 때문에 어떤 객체도 저장할 수 있지만, 키는 주로 String을 대문자 또는 소문자로 통일해 사용합니다. 키(key) : 컬렉션 내의 키(key) 중에서 유일해야 한다. ( 중복을 허용하지 않는다 ) 값(value) : 키(key)와 달리 데이터의 중복을 허용한다. 키만 중복을 왜 허용하지 않는지에 대한 예로, 아이디와 비밀번..
이번 포스팅에선 배열 [ ] 을 List로 변환하는 방법을 설명하고자 합니다. 이 내용을 이해하기 위해선 기본형과 참조형에 대한 이해가 필요합니다. 기본형과 참조형에 대해 알고 싶으시다면 아래 포스팅을 참고하시면 됩니다. Java - 변수의 타입 (기본형과 참조형) data의 type 우리가 주로 사용하는 값 ( data ) 의 종류 ( type )은 크게 "문자와 숫자"로 나눌 수 있으며, 숫자는 다시 "정수와 실수"로 나눌 수 있습니다. 이런 값( data )의 종류 ( type )에 따라 값이 저장 hstory0208.tistory.com String[ ] ↔ List로 변환 String[ ]배열을 List로 변환 import java.util.*; import java.util.Arrays; pu..
TreeSet은 이진 검색 트리(binary search tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스입니다. 이진 검색 트리는 정렬, 검색, 범위검색(range search)에 높은 성능을 보이며 TreeSet은 이진 검색 트리의 성능을 향상시킨 "레드-블랙 트리(Red-Black tree)"로 구현되어 있습니다. 그리고 Set 인터페이스를 구현했으므로 중복된 데이터의 저장을 허용하지 않고, 저장순서를 유지하지 않습니다. 이진 트리는 LinkedList처럼 여러 개의 노드(node)가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결할 수 있으며, "루트(root)"라고 불리는 하나의 노드에서 시작해 계속 확장해 나갈 수 있습니다. 위 아래로 연결된 두 노드를 "부모 - 자식 ..
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) 컬렉션 프레임워크란 "다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미" 합니다. 즉, 데이터를 저장하..