草庐IT

Collections2

全部标签

从零开始学习 Java:简单易懂的入门指南之可变参数及Collections类(二十五)

可变参数及Collections类1.可变参数2.Collections类2.1Collections常用功能2.2Comparator比较器3.综合练习练习1:随机点名器练习2:带概率的随机练习3:随机不重复练习4:集合的嵌套4.斗地主发牌4.1案例介绍4.2案例分析4.3代码实现4.4排序(第一种排序方式)4.5排序(第二种排序方式)1.可变参数在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.格式:修饰符返回值类型方法名(参数类型...形参名){}底层:​其实就是一个数组好处:​在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层

java - 为什么 Collections.sort(List) 在 Java 8 中使用 CopyOnWriteArrayList 而在 Java 7 中不起作用?

我可以使用以下代码和Java8毫无问题地对用户列表进行排序:CopyOnWriteArrayListallCurrentLoginnedUsersList=newCopyOnWriteArrayList();Collections.sort(allCurrentLoginnedUsersList);现在,我更改为Java7,并且在eclipse上没有看到任何错误。但是现在,在Java7下运行时出现了这个错误:java.lang.UnsupportedOperationExceptionatjava.util.concurrent.CopyOnWriteArrayList$COWIter

java - Collections.unmodifiableList(list) 是否需要锁?

我在名为Products.java的文件中维护了一个productListprivateListproductList=Collections.synchronizedList(newArrayList());现在创建一个同步列表,将确保像添加/删除这样的操作将有一个隐式锁,我不需要显式地锁定这些操作。我公开了一个返回此列表的unmodifiableList的函数。publicListgetProductList(){returnCollections.unmodifiableList(productList);}在我的应用程序中,多个线程可以同时调用这个函数。那么,在将List转换为

Java 8 Map of Collections 从集合中删除元素,如果为空则删除条目

我有一张map,其中的值是一个集合。给定一个键,我想删除集合中的一个元素并返回它,但如果集合为空,我也想删除该条目。有没有一种方法可以使用Java8的众多新Map方法之一在短时间内完成此操作?一个简单的示例(我使用Stack,但它可以是List、Set等)。为举例起见,我们假设已经检查map是否包含key。publicstaticStringremoveOne(Map>map,intkey){Stackstack=map.get(key);Stringresult=stack.pop();if(stack.isEmpty()){map.remove(key);}returnresult

Java if 三元运算符和 Collections.emptyList()

您能否解释一下为什么第一个返回类型无法编译代码?消息是:Typemismatch:cannotconvertfromListtoList.是否在第二种情况下插入了显式转换?publicclassGenericsTest{privateStringgetString(){returnnull;}publicListmethod(){StringsomeVariable=getString();//firstreturntype//returnsomeVariable==null?Collections.emptyList():Collections.singletonList(someV

java - Collections.newSetFromMap(»ConcurrentHashMap«) 与 Collections.synchronizedSet(»HashSet«)

显然,有两种方法可以获得thread-safeHashSet使用Java的Collections的实例实用类。Collections.newSetFromMap(ConcurrentHashMap)Collections.synchronizedSet(HashSet)我问:它们有何不同?在什么情况下,哪个优先于另一个? 最佳答案 你可能想到的是Setset=Collections.newSetFromMap(newConcurrentHashMap());这支持并发更新和读取。它的迭代器不会抛出ConcurrentModicati

java - Java 中的 Collections.checkedList() 调用是什么?

我只想知道为什么java.util.Collections.checkedList()实际使用。我有一些代码,我知道它会返回一个List但它正在通过一系列消息传递调用并作为java.io.Serializable返回给我.那个checkedList调用对我有用吗Serializable进入List?我知道我可以将它转换为java.util.List,但我宁愿不必检查每个元素,而且我不愿意假设每个元素都是String. 最佳答案 它在一定程度上用作调试工具,用于查找代码在何处插入了错误类型的类,以防您看到这种情况发生但无法确定位置。您

java - Java Collections.sort(nodes) 使用什么类型?

我认为是MergeSort,也就是O(nlogn)。但是,以下输出不同意:-1,0000000099000391,00000000990004271,0000000099000427,00000000990003465,0000000099000391,00000000990003461,0000000099000427,00000000990003455,0000000099000391,00000000990003451,0000000099000346,0000000099000345我正在按序号对4个节点的节点列表进行排序,排序进行6次比较。我很困惑,因为6>(4log(4))

java - 从 Google Collections 中查找 Multiset 中的前 N ​​个元素?

AGoogleCollectionsMultiset是一组元素,每个元素都有一个计数(即可能出现多次)。我无法告诉你我想要执行以下操作多少次制作直方图(完全是多重集)从直方图中获取前N个元素示例:前10个URL(按#次提及)、前10个标签(按#次应用)、...给定GoogleCollectionsMultiset,执行#2的规范方法是什么?Here是一篇关于它的博客文章,但该代码并不是我想要的。首先,它返回所有内容,而不仅仅是前N个。其次,它复制(是否有可能避免复制?)。第三,我通常想要确定性排序,即如果计数相等则抢七。其他细节:它不是静态的,等等。 最佳答

java - Java Collections Framework 中常用方法(大小)的意外复杂性?

最近,我对某些Java集合没有方法size()的常量时间操作感到惊讶。虽然我了解到集合的并发实现会做出一些妥协,作为并发增益的权衡(ConcurrentLinkedQueue、ConcurrentSkipListSet、LinkedTransferQueue等中的大小为O(n)),但好消息是API文档中对此进行了适当记录。我关心的是方法大小对某些集合方法返回的View的性能。例如,TreeSet.tailSet返回其元素大于或等于fromElement的支持集部分的View。令我非常惊讶的是,对返回的SortedSet调用大小在时间上是线性的,即O(n)。至少这是我设法从OpenJDK