0

我想在程序运行时将名称存储在数据结构中。当我收到一个新名称时,我希望能够尽快检查它是否已经在结构内。

我想过使用排序堆,但我不知道如何在java中处理它。

4

3 回答 3

6

如果您只需要检查是否存在,HashSet从性能角度来看, a 将是最有效的结构:

此类为基本操作(添加、删除、包含和大小)提供恒定的时间性能

如果您还需要按特定顺序(比如字母顺序)迭代名称,那么您可以使用 aTreeSet代替:

此实现为基本操作(添加、删除和包含)提供有保证的 log(n) 时间成本。

于 2013-05-28T12:20:25.147 回答
1

Java您可以在、检查TreeSetTreeMap开始时查找一些基于树的数据结构。这些将为您提供典型的 O(logn) 平均搜索时间,并使数据保持有序。

于 2013-05-28T12:20:06.553 回答
1

看看前缀树,它比任何标准的 java Set 实现都更适合您的任务。

于 2013-05-28T12:23:10.703 回答