2017-11-09 7 views
-2

골란에 값이 있는지 확인하는 효율적인 방법을 찾고 있습니다. 내가 아는 방법은 for 루프/범위를 사용하는 것입니다. 같은 것을 할 수있는 더 좋은 방법이 있습니까?골란의지도에 값이 있는지 확인하십시오.

어떤 도움을 주시면 감사하겠습니다 :)

+4

지도에 * 값 *이 있는지 알고 싶지만 맵에 * 키 *가 있는지 확인하는 Java의 'containsKey'와 비교하면 혼란 스럽습니다. 어느 것을 찾으십니까? – Adrian

+1

키가 있다고 알려주는 방법을 찾고 있다면 대답은 다음과 같습니다. https://stackoverflow.com/questions/2050391/how-to-check-if-a-map-contains-a-key- in-go –

+0

@Adrian .. 혼란에 사과드립니다. 나는 그 질문을 편집했다. –

답변

3

은지도가 특정 값이 포함 된 경우 방식으로 내장 결코 알 수 없다. 이 동작을 효율적으로 수행하려면 추가 데이터 구조를 사용하여이를 지원하는 것이 좋습니다.

이 작업은 아마 Map 인터페이스의 대부분의 구현 맵의 사이즈에 정비례 한 시간이 필요합니다 : 자바의 MapcontainsValue을 제공하지만, documentation는 말한다

참고.

Java Map을 효율적으로 구현해야하는 경우 제공해야합니다.

"효율적인 구현"은 매핑하려는 데이터의 종류에 따라 변경된다는 것을 의미합니다. 예를 들어 값이 항상 고유하면 map[value]key을 유지하면 충분합니다. 그렇지 않다면 더 원칙있는 것이 필요합니다.

+0

Gotcha! 감사. –

+0

만약 그것들이 유일하지 않다면, map [value] [] key가 작동 할 수도 있습니다. – RayfenWindspear

0

큰지도가 있고 값 확인을 최적화하려면지도를 거의 추가하십시오. map[valueType]int처럼. 그런 다음 :

관련 문제