본문 바로가기

Programming/JAVA

(139)
컬렉션 프레임워크(4) - Map 컬렉션 3 : Hashtable 사실 Hashtable은 HashMap과 동일한 내부 구조를 갖습니다. 그래서 이 역시 key로 사용할 객체는 hashCode( ), equals( ) 메서드 오버라이드를 통해 동등한 객체가 될 조건을 구성해야 합니다. 그럼 Hashtable과 HashMap의 근본적인 차이는 무엇일까요? Hashtable은 동기화(synchronized) 메서드로 구성되어 있습니다. 그래서 멀티 스레드 상에서 동시에 메서드 실행이 불가능하고, 하나의 스레드가 완료된 후에야 다른 스레드를 실행할 수 있습니다. 그래서 멀티 스레드를 사용하는 환경에서 객체와 관련된 삭제, 추가 작업이 안전합니다. 이를 두고 스레드가 안전(thread safe)라고 표현합니다. Map 인터페이스의 구현 클래스인 Hashtable의 생성 방법은..
컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[2/2] 앞서서 살펴본 예제를 이어서 진행해 보겠습니다. 컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[1/2] HashMap은 Map의 인터페이스를 구현하는 대표적인 Map 컬렉션입니다. HashMap에서 키로 사용할 객체는, hashCode( )와 equals( ) 메서드를 오버라이드 하여 동등 객체가 되는 조건을 정해야 합니다. 쉽게 설 nozeroslope.tistory.com import java.util.*; public class ExampleMain { public static void main(String[] args) { // Map 컬렉션의 생성 Map map = new HashMap(); // 객체 저장(중복 key 사용) map.put("SWINGS", 90); map.pu..
컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[1/2] HashMap은 Map의 인터페이스를 구현하는 대표적인 Map 컬렉션입니다. HashMap에서 키로 사용할 객체는, hashCode( )와 equals( ) 메서드를 오버라이드 하여 동등 객체가 되는 조건을 정해야 합니다. 쉽게 설명하자면, 키는 유니크 값이기 때문에 중복으로 존재할 수 없기 때문이죠. 키가 같다면 이는 동일한 Entry로 취급해야 하기 때문입니다. 같은 객체로 판단하는 프로세스는 다음과 같습니다. 1. 우선, hashCode( )의 리턴 값이 같으면 equals( )의 리턴 값을 점검합니다. > 만일 hashCode( )의 리턴 값이 다르면 이는 즉시 다른 키로 인식합니다. 2. equals( )의 리턴 값까지 true라면, 이는 같은 키로 판정을 완료합니다. > 만일 false가 리턴..
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[2/2] 앞서서 Map에서의 간단한 공통 인터페이스 메서드를 살펴보았습니다. 컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] 이번에는 Map 컬렉션에 대해서 살펴보겠습니다. Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조입니다. 중요한 특성 중 하나는, key는 중복 저장할 수 없으며 value는 중복 저 nozeroslope.tistory.com 우리가 어떤 객체의 키를 이미 알고 있다면, get( ) 메서드를 이용해 간단하게 객체를 찾아올 수 있습니다. 하지만 저장된 전체 객체를 하나씩 얻어서 처리하려는 경우에는 두 가지 방법을 사용할 수 있습니다. 1. keySet( ) 메서드 사용 2. entrySet( ) 메서드 사용 각각의 방법을 살펴보겠..
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] 이번에는 Map 컬렉션에 대해서 살펴보겠습니다. Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조입니다. 중요한 특성 중 하나는, key는 중복 저장할 수 없으며 value는 중복 저장이 가능하다는 점입니다. - 만일 기존 키와 동일한 key로 특정 value를 저장하게 되면 기존의 value는 없어지고, 새로운 value로 대치하게 됩니다.    Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 등이 있는데 여기서는 우선 Map 컬렉션에서 공통으로 사용되는 Map 인터페이스의 메서드를 확인해 보겠습니다. Map 컬렉션은 Key를 통해서 객체를 호출하고 관리하는 경우가 많기 때문에, 키를 파라미터 값..
컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [2/2] 앞선 아티클에서 HashSet의 기본 사용방법을 알아보고, hashCode( )와 equals( ) 메서드를 살펴보았습니다. 이번에는 사용자 정의 클래스를 통해서 hashCode( )와 equals( ) 메서드를 오버라이드해 사용하는 예시까지 살펴보도록 하겠습니다. 컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [1/2] 본격적으로 Set 컬렉션의 구현 클래스를 살펴보겠습니다. 우선, HashSet을 보겠습니다. 기본적으로 HashSet 생성은 아래와 같이 기본 생성자를 호출하는 방식입니다. 타입 파라미터 E에는 컬렉션에 nozeroslope.tistory.com 이번에는 사용자 정의 클래스인 Member 클래스를 선언하도록 하겠습니다. 우리가 하고자 하는 것은, 이 Member 인스턴스..
컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [1/2] 본격적으로 Set 컬렉션의 구현 클래스를 살펴보겠습니다. 우선, HashSet을 보겠습니다. 기본적으로 HashSet 생성은 아래와 같이 기본 생성자를 호출하는 방식입니다. 타입 파라미터 E에는 컬렉션에 저장할 객체의 타입을 선언하는 것은 기존 컬렉션과 동일합니다. Set set = new HashSet(); Set set = new HashSet(); HashSet에서 중요한 포인트는, 객체들을 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다는 성질을 처리하는 방식입니다. HashSet은 객체를 저장하기 전, 두 가지 스텝을 거쳐 동일한 객체인지를 판단하고 저장을 하게 됩니다. 1. 객체 저장 전, 객체의 hashCode( )를 호출해 해시코드 리턴 값을 이미 저장된 객체들의 해시코드와 비교합니..
컬렉션 프레임워크(3) - Set 컬렉션 1 : Set의 개념 List와 차별화되는 Set 컬렉션의 가장 큰 특징은, 수학의 집합과 유사한 성질을 갖는다는 것입니다. 기본적으로 Set 컬렉션은 인덱스가 사용되는 List와 달리 (1) 순서가 없고, (2) 중복이 허용되지 않습니다(null도 하나만 저장할 수 있습니다). 기본적으로 Set 컬렉션의 종류에는 HashSet, LinkedHasSet, TreeSet 등이 있습니다. 그리고 아래의 메서드들은 Set 컬렉션에서 공통으로 사용 가능한 Set 인터페이스의 메서드들입니다. List 컬렉션과 달리, 인덱스 개념이 없기 때문에 인덱스를 파라미터로 갖는 메서드가 없다는 것이 특징이지요. 기능 메서드 description 객체 추가 boolean add(E e) 주어진 객체를 저장한다. 저장 성공 시 true, 실패 시 ..