베어민
60
2019-01-12 23:40:32
7
545

자바 해시맵!!!!!!!!!ㅠ


하나만 여쭙겠습니다..

혹시 자바 맵에서

키값 int를 오름차순으로 정렬해주고

특정 키의 바로전 작은 키값과 후의 큰키값을 반환하는게 자바에도있나요..?ㅠㅠ


c++에는 이런게있다는데...ㅠㅠ

C++의 STL에 분명 입력하면 정렬된 상태로 저장되고,

• 입력된 값의 바로 앞의 값과 바로 뒤의 반복자를 return해주는 STL이 있을 것이라 생각했고 구글링에 들어갔다.

• 바로 map이라는 것이 필자가 찾는 STL이었다!

출처: http://vvshinevv.tistory.com/27 [왜 모르는가?]


0
0
  • 답변 7

  • LichKing
    13k
    2019-01-12 23:46:52

    c++은 모르겠고, 자바에서는 코드작성하시면 될것같은데요. 언어차원의 기능은 없습니다.

    0
  • 베어민
    60
    2019-01-12 23:51:46

    LichKing 

    그런데 어느 특정 키값을 알고서 그다음번 순의 키값을 어떻게아는건가요?

    설마 이터레이터로 계속 반복 돌려오면서 찾아야 하는건가요?

    0
  • LichKing
    13k
    2019-01-12 23:55:50 작성 2019-01-12 23:57:14 수정됨

    key 를 list로 뽑아서 특정 키 인덱스에 +-1을 하면되겠네요.

    아니면 해보진 않았는데 iterator에 next prev 를 이용하는 방법도 있을것같네요

    0
  • zepinos
    18k
    2019-01-13 12:22:02

    Java  Collection 들은 Sorted 가 접두어로 붙은 인터페이스를 구현한 놈들이 있어요. Map 의 경우 SortedMap 을 구현한 TreeMap 이 있겠죠.

    여기에 넣으면 자동 정렬됩니다(숫자는 오름차순, 문자는 내림차순). 그리고 higherMap(), lowerMap() 같은 메서드가 존재할 겁니다(모바일이라 양해를...). 이를 이용해보시면 어떨까요?

    0
  • biipp
    88
    2019-01-13 15:18:55 작성 2019-01-13 15:23:10 수정됨

    https://stackoverflow.com/questions/663374/java-ordered-map

    java는 잘모르겠지만, c++의 map은 내부적으로 BST을 사용하고 Balancing처리를 한것입니다, order이 필요없을경우 unoreded_map을 사용합니다. 이게 흔히 아는 hash_map입니다. 가급적이면 order기능이 없는 것을 사용하는 것이 더 좋습니다.(성능적으로)

    0
  • 고현웅
    40
    2019-01-13 16:16:36

    TreeMap을 이용하시면 됩니다~

    0
  • 베어민
    60
    2019-01-13 17:51:37

    모두 답변 감사합니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.