의 숲을 볼은`t : 내 수학 프로그램을 통해 으로 반복에 항목의 거대한 수집있을 것이다. 주로 항목 및 포인터 (키 값 쌍과 유사한 다른 항목 ((int) item, (int) pointer)로 구성됩니다. 그러나, 자신의 각 항목은해야합니다 여러 이 같은 속성을 다른 :HashSet의, 사전, ArrayList에가 : 나무에 대해
이 에게 이(항목, 포인터), (속성, 속성, 속성, ...)
항목, 포인터와 속성이됩니다 자주 추가되었습니다.
이 사이트와 다른 프로그램을 검색하면 프로그램에 사용할 컬렉션이 무엇인지 알지 못합니다.
Dictionary<Dictionary<int,int>,Dictionary<int,int> nestedDictionary =
new Dictionary<Dictionary<int,int>,Dictionary<int,int> nestedDictionary();
또는 일반 언어 :
Dictionary<Dictionary<item, pointer>,
Dictionary<attribute,attribute, ...> nestedDictionary =
Dictionary<Dictionary<item, pointer>,
Dictionary<attribute,attribute, ...>();
속성의 숫자가 아니라는 것을 유의하시기 바랍니다을 vcskicks.com에서 발견 사전 솔루션이 가장 적합한 것으로 보인다 지금이 순간
미리 정의 된 길이에 따라 다릅니다. 또한이 순간에 성능 오버 헤드로 인해 객체를 사용하는 것을 꺼려합니다.
해시 세트 중복 항목이 존재하기 때문에 적합하지 않은 것처럼 보이지만 속성이 다를 수 있습니다. 또는 해시 세트에 중복 항목이 있지만 해시 키가 중복되지 않을 수 있습니까? 약간의 혼란이있는 것 같습니다.
일부에 따르면 다음과 같은 HashSet의는 계산되지 않습니다
11011, 0001
11011, 0011
그것을 것 다른 사람에 따르면, 다른 hashkey이 때문이다. 그것은 나를 당황하게합니다.
내 질문 : 무엇을 사용하는 가장 좋은 컬렉션 유형 : 모호한에 될 위험이
? 필요하다면 이야기에 더 많은 것을 기꺼이 추가하십시오.
편집 :
거인 의미 항목의 잠재적으로 수백만. 모든 항목에는 포인터와 속성이 있습니다. 일반적인 사용은 특정 항목에 대해을 검색하여 포인터를 검색하고 포인터가 남아 있지 않을 때까지 다음 포인터의 항목을 가져 오는 이됩니다. 동시에 각 항목의 모든 속성이 수집됩니다. 추가 작업은 가끔씩 만 제거하여 정기적으로 수행됩니다. 포인터 : 포인터가 가리키는 항목의 색인입니다. 2 개의 항목이 있고 첫 번째 항목이 두 번째 항목에 연결되어 있으면 첫 번째 항목의 포인터가 두 번째 항목의 색인이됩니다. 최상의은 메모리 사용 및 속도로 정의됩니다.결국 찾은 모든 항목이 서로 비교됩니다. 예 :, 개체의 컬렉션을 유지할 필요가 같은
[Item , pointer] [attribute, attribute, ...]
[11011, 1001] [ 1101, 1111 ]
[10001, 1000] [ 1110, 0101 ]
[11111, 0010] [ 1111, 1110 ]
[11011, 0001] [ 0010, 1010 ]
덕분에
단일 링크 된 목록처럼 들립니다. – CodesInChaos
'거인'의 크기는 어느 정도입니까? 일반적인 용도, 많은 독서 또는 많은 추가/삭제가 무엇입니까? 어떤 종류의 공연이 필요합니까? – RvdK
"최고"를 정의해야한다고 생각합니다. 당신은 메모리 소비, 속도, 코딩의 용이성, 다른 것을 생각하고 있습니까? –