我有一个列表,该列表有一个 x509certificate
,我用它来存储在 cms 包中。真是花花公子,直到我遇到了这个问题:我不能让同一个人签名两次。
所以,我知道如何平等地找到该证书,即线性搜索。
这听起来可能纯粹是虚荣心,但我宁愿使用二分搜索,显然使用可比较
。
我怎么能这么做呢? (java 或 bouncyCaSTLe)。
谢谢
最佳答案
将证书存储在 TreeSet
中,并使用 Collections.binarySearch
查找感兴趣的证书(您必须将您的 Set
> 首先放入 List
中)。 TreeSet
的底层是一个 TreeMap
,因此如果您不喜欢该实现,您可以实现 SortedSet
并创建您自己的。如果不担心重复的证书,请将它们存储在 List
中,并在调用 binarySearch
之前对其进行排序。
您是否有理由不想使用好的Collection.contains
?
关于java - 如何使用二分搜索比较 x509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244227/