복붙노트

[SCALA] 삽입 순서 스칼라지도 구현 유지 항목?

SCALA

삽입 순서 스칼라지도 구현 유지 항목?

자바에서 나는이 목적을 위해의 LinkedHashMap을 사용합니다. 자바의 LinkedHashMap의 문서는 "예측 가능한 반복 순서를"가지고 매우 분명하다 내가 스칼라에서 동일해야합니다.

스칼라는 listmap을과의 LinkedHashMap을 가지고 있지만 그들이 정확히 무엇에 대한 설명서는 좋지 않습니다.

질문 :이 목적을 위해 사용하는 구현 스칼라의 LinkedHashMap이나 listmap을인가? 그렇지 않다면, 다른 어떤 옵션을 직접 자바의 LinkedHashMap을 사용 이외에 사용할 수 있습니까?

해결법

  1. ==============================

    1.의 LinkedHashMap Scaladoc 페이지에서 :

    의 LinkedHashMap Scaladoc 페이지에서 :

  2. ==============================

    2.둘 사이의 차이는 listmap을 불변 인 동안의 LinkedHashMap가 가변이라는 것이다. 그렇지 않으면 그들은 둘 다 MapLike있는도 삽입 순서를 유지.

    둘 사이의 차이는 listmap을 불변 인 동안의 LinkedHashMap가 가변이라는 것이다. 그렇지 않으면 그들은 둘 다 MapLike있는도 삽입 순서를 유지.

  3. ==============================

    3.의 LinkedHashMap의 경우, 대답은 삽입의 순서를 유지하는 것이 매우 분명하다.

    의 LinkedHashMap의 경우, 대답은 삽입의 순서를 유지하는 것이 매우 분명하다.

    그러나 listmap을 위해, 일부 혼란이 여기에 있다는 것을 보인다.

    첫째, 두 listmap을있다.

    둘째, listmap을위한 문서는 내가 시도까지처럼 뭔가 문제가있다.

    mutable.ListMap

    이 말한대로 실제 순서는 삽입 순서가 아닙니다.

    그리고 역시 삽입 역순 아니다. 시도 결과는 I이다 항, 제 먼저 제]

    immutable.ListMap

    그 말을 문서로, 순서는 삽입 순서입니다.

    주목해야 할 것은 그 반대의 삽입 순서로 내부에 저장되어 있다는 점이다. 그리고 내부에 저장된 순서와 반복 가능한 / 탐색 순서는 두 가지입니다. 내부적으로 저장된 순서는 헤드 / 성 / 꼬리 / 초기화 / 같이 룩업 방법의 시간 복잡도를 결정한다.

  4. ==============================

    4.의 LinkedHashMap은 변경 가능한 맵으로 구현된다 ListMaps 그러나 단지 불변 ListMaps가 뒤로 순서를 유지, 변경이 용이 한 불변의 패키지 모두에서 구현됩니다. (가변 listmaps은 질서를 유지하지 않음)

    의 LinkedHashMap은 변경 가능한 맵으로 구현된다 ListMaps 그러나 단지 불변 ListMaps가 뒤로 순서를 유지, 변경이 용이 한 불변의 패키지 모두에서 구현됩니다. (가변 listmaps은 질서를 유지하지 않음)

  5. ==============================

    5.listmap을 삽입의 순서를 유지하지 않습니다.

    listmap을 삽입의 순서를 유지하지 않습니다.

    만의 LinkedHashMap은 요소의 순서가 삽입되는 방식을 유지한다.

    당신은지도가 아닌 다른 목록 당신은 LinkedList의를 사용할 수 있습니다에서 질서를 유지하려는 경우

  6. ==============================

    6.VectorMap 및 SeqMap 스칼라 2.13 신청서 유지지도 개의 불변 새로운 구현을 소개한다. 이 PR를 참조하십시오 "

    VectorMap 및 SeqMap 스칼라 2.13 신청서 유지지도 개의 불변 새로운 구현을 소개한다. 이 PR를 참조하십시오 "

    글을 쓰는 스칼라 2.13는 여전히 2018 년에 발표 될 예정이다.

  7. from https://stackoverflow.com/questions/3835743/scala-map-implementation-keeping-entries-in-insertion-order by cc-by-sa and MIT license