클래스 중 하나에 인스턴스 멤버로 조회 테이블을 저장해야합니다. 객체가 생성되면 테이블이 초기화됩니다. 나는 어느 StringKey 또는 EnumKey에 의해 조회를 수행하기위한 최상의 성능을 얻을 것입니다 데이터 구조를 선택 할이 메모리 내 룩업 테이블을위한 최상의 데이터 구조는 무엇입니까?
StringKey (e.g., "car")
EnumKey (e.g., LookupKeys.Car)
Value (e.g, "Ths is a car.")
: 각 "행"3 "열"을해야합니다.
동일한 사전 값에 대해 2 개의 키가있는 것은 다소 어색합니다. 전에는 이런 일이 발생하지 않았으므로 이런 종류의 일에 대한 표준이 무엇인지 궁금합니다.
키/값/값 대신 키/값/값 구조를 만들 수 있지만 성능에 어떤 영향을 미치는지 궁금합니다.
나는이 모든 잘못에 대해 생각하고 있습니까?
예 - "value instances"는 문자열입니다. 값이 동일한 문자열 참조 변수를 포함하는 두 개의 사전 (하나는 StringKey, 하나는 EnumKey)을 만들겠습니다. 그게 맞는 것 같니? –
정확하게. 파이썬에서는 그게 전부입니다. Java에는 모든 intern() 문자열이 일반적인 문자열 풀로 축소되어 가능한 중복을 제거하도록 보장하는 string.intern()이 있습니다. –
C#을 사용하고 있습니다 ... .NET에서 각 사전에 추가 할 때 문자열 복사본을 만들지 알고 있습니까? –