hashValue
スイフトでの選択に関するパフォーマンス上の考慮事項がありますHashable
Set
に挿入できるタイプはありますか?例えば、私が選択した整数値のサイズはバッキング配列のサイズに影響しますか?すなわち、hashValue
の4000
をタイプに割り当て、それをSet
に挿入すると、バッキングアレイの長さは少なくとも4000
である必要がありますか?迅速なプロトコルでのhashValueのパフォーマンスに関する考慮事項Hashable
3
A
答えて
5
hashValue
は、一意である必要はありません。大部分のケースでは、はであることはできません(64ビットより大きいタイプは必然的にそのハッシュよりも多くの状態を持つ必要があります)。整数のサイズは選択しません。常にInt
(マシンのワードサイズ)になります。
hashValue
は、理想的にはO(1)であるべきです。これは、等価性チェックを最適化するためによく使用されます(非常に遅い可能性があります)。
hashValue
の最も簡単な実装は次のとおりです。
var hashValue: Int { return 1 }
は、これは完全に有効なハッシュです。特にではなく、ハッシュですが、すべての要件を満たしています。それは計算が速く、すべての等しいオブジェクトは等しいハッシュを持ちます(これは要件です;逆は必要ありません。等ハッシュは等しいオブジェクトを暗示することはできません)。
関連する問題
- 1. パフォーマンスに関する考慮事項のためのJavadocタグ
- 2. Django QuerySetとraw SQLのパフォーマンスに関する考慮事項
- 3. JQuery Datatablesと.NET WebAPIのパフォーマンスに関する考慮事項
- 4. XSLTのパフォーマンスに関する考慮事項
- 5. SQL Azureのパフォーマンスに関する考慮事項
- 6. EF&.EDMXパフォーマンスの考慮事項
- 7. CSS3移行パフォーマンスに関する考慮事項
- 8. setuidラッパーに関する考慮事項
- 9. パラレル化に関する考慮事項
- 10. Javaポータルアーキテクチャーに関する考慮事項
- 11. 管理されていない管理オプション:パフォーマンスに関する考慮事項
- 12. MSSQL手順 - パフォーマンスの考慮事項大規模なテーブル
- 13. NUI/touchインターフェイスに関する一般的な考慮事項
- 14. SQL Server CEのEntity Framework - 遅延ロードとパフォーマンスの考慮事項
- 15. WITH WITHコンシューマー・グループ - パフォーマンスおよびその他の考慮事項
- 16. OOGenericsのデザインに関する考慮事項
- 17. 大容量データのログに関する考慮事項
- 18. 長期実行PHPスクリプトのメモリに関する考慮事項
- 19. ASP.NET Core WebAPIのセキュリティに関する考慮事項
- 20. マルチサーバー展開のASP.netソリューションに関する考慮事項
- 21. ClickOnceデプロイされたアプリケーションのプリズムアーキテクチャに関する考慮事項
- 22. JDBCとJavaのキャッシュに関する考慮事項
- 23. トラフィックが多いASP.NET MVCのコーディングに関する考慮事項
- 24. SharePoint 2003から2007へのアップグレードに関する考慮事項
- 25. スマートクライアントアプリケーションの同期フレームワークに関する考慮事項
- 26. client_idのOAuth2セキュリティに関する考慮事項
- 27. Rackspace:SQL Serverの最大サーバーメモリに関する考慮事項
- 28. MySQLのメモリに関する考慮事項
- 29. joblibとパラレル化する - パフォーマンスの飽和と一般的な考慮事項
- 30. Fiware:Cepheusのセキュリティ上の考慮事項?
"backing array"またはなぜ 'hashValue'がそれと関係するのかは、ここで何を意味するのかは不明です。 (私は答えが「いいえ」と思っていますが、私は本当にその質問を理解していません。) –
私は特に「セット」を考えています。残念です。 – gloo
私は、セットがハッシュ値がインデックスである配列として実装されていると思いますか?彼らの実装方法ではありません。それらはハッシュテーブルです。 https://en.wikipedia.org/wiki/Hash_table。ハッシュ値自体はかなり無関係です。理想的には、Int領域全体でランダムなので衝突はなく、テーブルはバランスがとれています(バイナリツリーを使用しているかどうかは分かりません; https://github.com/apple/swiftを参照してください)。 /blob/master/stdlib/public/core/HashedCollections.swift.gyb) –