草庐IT

concurrent-collections

全部标签

java - Java 的 Collections.sort(list, compare) 的排序顺序是什么?从小到大还是从大到小?

显然,它没有记录在案,或者我错过了。Here是文档的链接,下面是作为图像的文本:编辑(17/5):我认为太多人将此问题混淆为比较问题。它不是。比较器在2个元素之间进行比较。根据该比较,列表排序。怎么样?升序还是降序?我将进一步细化/简化问题:如果比较器确定元素A小于元素B。在排序列表中,元素A是否位于比元素更低的索引处乙? 最佳答案 排序顺序始终是升序,其中比较器定义哪些项目比其他项目大。来自Collections.sort(Listlist,Comparatorc)的文档:Sortsthespecifiedlistaccordin

java - Guava 的 Collections.unmodifiableSet() 和 ImmutableSet 有什么区别?

ImmutableSet的JavaDoc说:UnlikeCollections.unmodifiableSet,whichisaviewofaseparatecollectionthatcanstillchange,aninstanceofthisclasscontainsitsownprivatedataandwillneverchange.Thisclassisconvenientforpublicstaticfinalsets("constantsets")andalsoletsyoueasilymakea"defensivecopy"ofasetprovidedtoyourcl

java - 如何在 Java 中使用 Collections.sort()?

我得到了一个对象Recipe实现Comparable:publicintcompareTo(RecipeotherRecipe){returnthis.inputRecipeName.compareTo(otherRecipe.inputRecipeName);}我已经这样做了,所以我可以对List进行排序采用以下方法按字母顺序排列:publicstaticCollectiongetRecipes(){Listrecipes=newArrayList(RECIPE_MAP.values());Collections.sort(recipes);returnrecipes;}但现在,换一

java - 按索引从 Collection 中获取值(value)的最佳方式

按索引从java.util.Collection获取值(value)的最佳方法是什么? 最佳答案 你不应该。Collection避免专门讨论索引,因为它可能对特定的集合没有意义。例如,List暗示某种形式的排序,但Set不暗示。CollectionmyCollection=newHashSet();myCollection.add("Hello");myCollection.add("World");for(Stringelem:myCollection){System.out.println("elem="+elem);}Syst

java - 如何解决 'Program type already present: com.google.common.util.concurrent.ListenableFuture' ?

我正在尝试使用WorkManager1.0.0-alpha09。并收到此错误:Programtypealreadypresent:com.google.common.util.concurrent.ListenableFutureMessage{kind=ERROR,text=Programtypealreadypresent:com.google.common.util.concurrent.ListenableFuture,sources=[Unknownsourcefile],toolname=Optional.of(D8)}如果我使用1.0.0-alpha08或更低版本。我没有

java - quartz : preventing concurrent instances of a job in jobs. xml

这应该很容易。我正在使用在ApacheTomcat6.0.18下运行的Quartz,并且我有一个jobs.xmlfile它设置了我每分钟运行一次的计划作业。我想做的是,如果下一个触发时间到来时作业仍在运行,我不想开始新作业,所以我可以让旧实例完成。有没有办法在jobs.xml中指定这个(防止并发实例)?如果没有,我是否可以在我的应用程序的Job中共享对内存中单例的访问权限?实现(这是通过JobExecutionContext吗?)所以我可以自己处理并发?(并检测之前的实例是否正在运行)更新:在文档中苦苦挣扎之后,我正在考虑以下几种方法,但要么不知道如何让它们工作,要么存在问题。使用St

java - Hashtable 和 Collections.synchronizedMap(HashMap) 的区别

据我所知,java.util.Hashtable同步java.util.Map中的每个方法接口(interface),而Collections.synchronizedMap(hash_map)返回一个包装器对象,其中包含将调用委托(delegate)给实际hash_map的同步方法(如果我错了,请纠正我)。我有两个问题:同步每个方法和拥有一个包装类有什么区别?有哪些场景可以选择其中一个?当我们执行Collections.synchronizedMap(hash_table)时会发生什么?这是否等同于简单地使用普通的java.util.Hashtable?

java - java.util.Collection 为什么不实现新的 Stream 接口(interface)?

我刚刚花了一些时间开始研究有关流和lambda的java-8嗡嗡声。令我惊讶的是,您不能直接在java.util.Collection上应用Stream操作,例如.map()、.filter()>。java.util.Collection接口(interface)未扩展是否有技术原因这些Stream操作的默认实现?谷歌一下,我看到很多人按照以下模式编码的例子:Listlist=someListExpression;ListanotherList=list.stream().map(x->f(x)).collect(Collectors.toList());如果您的代码中有很多这样的流操

java - 为什么 Collections.sort() 比 Arrays.sort() 慢得多?

我尝试对Collection.sort()和Arrays.sort()进行测试。在测试中,我创建了一个长度为1e5100次的int数组,其中包含从1到1e5的随机数。我还创建了一个Integer类型的列表,它在与数组相同的位置包含相同的值。然后我使用Arrays.sort()对数组进行排序,并使用Collections.sort()对列表进行排序。更新:正如@Holger指出的那样,我的代码有一个错误。现在更正的代码是:importjava.util.*;classTestClass{publicstaticvoidmain(Stringargs[])throwsException{d

java - .collect 是否保证在并行流上排序?

鉴于我有一个字符串列表ListtoProcess.结果必须按照给出原始行的顺序。我想利用新的并行流。以下代码是否保证结果与原始列表中的顺序相同?//["a","b","c"]ListtoProcess;//shouldbe["a","b","c"]Listresults=toProcess.parallelStream().map(s->s).collect(Collectors.toList()); 最佳答案 TL;DR是的,订单有保证。Stream.collect()API文档开始的地方是看看是什么决定了减少是否是并发的。Str