본문 바로가기

반응형

HashMap

(2)

[Java/Tip] String.hashCode()는 유일한 값을 반환할까? 요즘에도 댓글이 달려, 내용을 좀 다듬었습니다. HashMap 내부 소개와 더불어 hashCode()에 대한 설명을 하려다보니 내용에 혼돈이 있었습니다. 해당 내용은 Java7 을 기준으로 작성된 내용입니다. Java 8부터는 내부 구현이 바뀌었을겁니다. ---------- 안녕하세요. 찬 입니다. hashCode()는 어디에 사용할까요? 우리가 일반적으로 Map이나 HashTable을 쓸때 다음과 같이 사용하지요. Map map = new HashMap(100); map.put("찬", new Person( Person.MEN, 29 ) ); map.put("철수", new Person( Person.MEN, 15) ); map.put("영희", new Person( Person.WOMAN , 13 )..
[Java] ArrayList의 removeAll과 HashMap의 remove 비교. 일을 하다가 발견한 문제이다. 특정한 동작을 하는것이 있었는데.. 이 놈이 유독스럽게 Mac 에서만 무진장 오래 걸린다는 문제 였다. 윈도우에서는 단 1초도 안되어서 끝나는 작업이었지만, Mac 에서만 22초가 소요되고 있었다. 문제가 어디서 발생하는지는 찾았는데, 왜 Mac 에서만 유독 느린지 이유를 밝혀 내지는 못했다. 여하튼, 문제는 ArrayList의 removeAll 메소드에 있었다. removeAll 메소드에 대해서 좀 살펴 보자. ArrayList 의 상속 관계를 보면 아래와 같다. 여기서 removeAll 이라는 메소드는 Collection 에서 interface를 제공하고 있으며, 실제 그 구현은 AbstractCollection 에 아래와 같이 되어 있다. 보다시피 현재의 컬렉션에서 p..

반응형