태섭씨 블로그
Dictionary Map 차이점 (자료구조) 본문
나중에 또 찾아볼 것을 대비하여 간략히 정리한다.
예전에 파이썬의 dictionary 자료구조를 접하고, 최근에 자바의 map 자료구조를 접했을때에 차이점이 뭔지 궁금했었다.
둘 다 key/value 구조를 가지고, key가 unique 하다는 점도 동일한데 왜 이름이 다를까.?
http://stackoverflow.com/a/2884200
위 링크를 보면 아래와 같이 나와있다.
Two terms for the same thing "Map" is used by Java, C++ "Map" is the correct mathematical term, but it is avoided because it has separate meaning in functional programming. See here. |
물론 여기 이렇게 나와있다고 100% 확신할 수는 없겠지만, 아마 큰 차이는 없을 것 같다...
--------------------------------------------------------------------
자바 기준으로 보자면, java se api 문서에는 일단 dictionary 와 map이 별도로 존재하긴 한다.
어디서 줏어들은 바로는, dictionary는 jdk 1.0 시절에 자료구조에 대한 상세한 설계없이 대충 만들었다가 하위호환을 위해서 어쩔수 없이 남겨뒀다고 하는데 맞는지는 모르겠다.
(interface가 아닌) abstract class 인 점, collections framework에도 포함안되는 것을 보면 맞지 싶다.
dictionary - http://docs.oracle.com/javase/8/docs/api/java/util/Dictionary.html - since JDK 1.0 - NOTE: This class is obsolete. New implementations should implement the Map interface, rather than extending this class. - Direct Known Subclasses: Hashtable - subclass 로 hashtable 이 있는데, 이건 map 인터페이스를 implements 하고 있다... |
map - http://docs.oracle.com/javase/8/docs/api/java/util/Map.html - since 1.2 - This interface is a member of the Java Collections Framework. -An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. This interface takes the place of the Dictionary class, which was a totally abstract class rather than an interface. - All Known Subinterfaces , All Known Implementing Classes: java api 페이지 참고 |
* http://helloworld.naver.com/helloworld/textyle/831311 이 페이지를 참고하는 것도 좋겠다.
(hashmap과 hashtable 비교 설명 부분)
'IT' 카테고리의 다른 글
Wildcard SSL 인증서 설치 작업 기록 (0) | 2015.03.12 |
---|---|
HTTP Keep-Alive (0) | 2015.03.06 |
URL 에서의 #! (hash-bang) (0) | 2015.02.11 |