Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在程序运行时将名称存储在数据结构中。当我收到一个新名称时,我希望能够尽快检查它是否已经在结构内。
我想过使用排序堆,但我不知道如何在java中处理它。
如果您只需要检查是否存在,HashSet从性能角度来看, a 将是最有效的结构:
HashSet
此类为基本操作(添加、删除、包含和大小)提供恒定的时间性能
如果您还需要按特定顺序(比如字母顺序)迭代名称,那么您可以使用 aTreeSet代替:
TreeSet
此实现为基本操作(添加、删除和包含)提供有保证的 log(n) 时间成本。
Java您可以在、检查TreeSet和TreeMap开始时查找一些基于树的数据结构。这些将为您提供典型的 O(logn) 平均搜索时间,并使数据保持有序。
Java
TreeMap
看看前缀树,它比任何标准的 java Set 实现都更适合您的任务。