ConcurrentSkipListSet
全部标签 我正在使用ConcurrentSkipListSet并使用contains方法。根据包含方法的JAVA文档如果此集合包含指定元素,则返回true。更正式地说,当且仅当此集合包含满足o.equals(e)的元素e时才返回true。但是根据我的测试,似乎没有使用equals方法,而是必须使用Comparator。请帮助我理解JAVA规范和实现之间的这种异常情况并发跳过列表集/***如果使用比较器,返回一个ComparableUsingComparator,否则*将键转换为Comparable,这可能会导致ClassCastException,*传播回调用者。*/privateCompara
我在ConcurrentSkipListSet上使用descendingIterator方法。我刚刚查看了文档并注意到以下评论:“升序View及其迭代器比降序View更快。”参见https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html#descendingIterator--不幸的是,它没有提供任何关于此的更多信息。有什么样的性能差异?重要吗?为什么会有性能差异? 最佳答案 如果您查看SkipLists的维基百科
通常,并发集合可以安全地进行迭代;根据Javadoc的说法:'迭代器是弱一致的,返回的元素反射(reflect)了在迭代器创建时或自创建迭代器后的某个时刻集合的状态。它们不会抛出ConcurrentModificationException,并且可能会与其他操作同时进行。但是,考虑一下:importjava.util.Random;importjava.util.TreeSet;importjava.util.concurrent.ConcurrentSkipListSet;publicclassConcurrencyProblem{privatestaticvolatileboole
我刚刚在Java6API上看到了这个数据结构,我很好奇它什么时候会成为有用的资源。我正在为scjp考试而学习,但我没有看到KathySierra的书涵盖了它,尽管我看过提到它的模拟考试问题。 最佳答案 ConcurrentSkipListSet和ConcurrentSkipListMap当您需要一个将由多个线程访问的排序容器时很有用。这些本质上是并发代码的TreeMap和TreeSet的等价物。JDK6的实现基于HighPerformanceDynamicLock-FreeHashTablesandList-BasedSets由IB