草庐IT

oci_new_collection

全部标签

java - Java 中 iterable<Integer> 的 Collections.max 函数

JavaCollections.max仅采用可排序对象的集合。然而,由于集合不一定排序,我看不出有任何理由不为可迭代类型实现相同的max函数。Iterable>是否有max方法?在Java的标准库中? 最佳答案 虽然Guava不是Java的标准库,但它已经足够接近了......Ecom.google.common.collect.Ordering#max(Iterableiterable)例如Tmax=Ordering.natural().max(myIterable);至于为什么标准库没有实现,可能是因为aCollectionmu

java - java 中的约定 - 构造函数/方法之外的 "new"?

简单的问题。有心友写过类似这样的代码(只是为了给你解释我的问题,一点用都没有....)classExample{privateint[]tab=newint[10];publicExample(){for(inti=0;i我告诉他他应该将new放在构造函数中classExample{privateint[]tab;publicExample(){tab=newint[10];...}当他问我为什么时,我不知道该怎么回答:除了“这样更好”之外,我没有明确的论据。按照我的学习方式,您可以使用基本类型(int、double...)初始化变量,但对于数组,您应该在构造函数中进行初始化。所以:真

java - 我不应该在 Java 中执行 `String s = new String("一个新字符串");`,即使有自动字符串实习?

好的,这个问题是这个问题的延伸JavaStrings:"Strings=newString("silly");"上面的问题和这个问题问的是同一个问题,但是我有一个新的疑点。根据EffectiveJava和上述问题的答案,我们应该不做Strings=newString("anewstring");,因为那样会创建不必要的对象。这个结论我不太确定,因为我觉得Java在做automaticstringinterning,也就是说对于一个字符串,反正内存中只有一份。那么让我们看看Strings=newString("anewstring");。"anewstring"已经是在内存中创建的字符串

java - 为什么 private static field = new Singleton 在 Java 中不懒惰?

我看了很多关于Singleton的文章,其中大部分作者都说Java中Singleton的这种变体:publicclassSingleton{privatestaticSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}是不懒惰(然后是EAGER)。但我不明白为什么,Singleton()构造函数只会在Singleton类初始化时被调用。我知道几个可以触发类初始化的原因:将new与构造函数一起使用(但在这种情况下,构造函数是私有(p

java - Collections.shuffle(列表列表)

什么会促使人们使用这种方法?更新:我现在明白了。我喜欢Uri的理由“Shufflingisnotatrivialalgorithm”。这是千真万确的。 最佳答案 人们想要随机打乱有序的元素序列的原因可能有很多。例如,一副纸牌。洗牌不是一个简单的算法,正如排序不是-所以它很常见,需要一个库函数。至于为什么是列表——显然它必须是一个有序的集合,因此不是任何一般的集合。只保证列表及其子类型是有序的。Collections类不提供对数组的操作,但您可以(并且可能应该,为了性能)将ArrayList传递给此方法。

java - 没有封闭的实例是可访问的。必须用类型的封闭实例限定分配(例如 x.new A() 其中 x 是 的实例)

这个问题在这里已经有了答案:Whatcauseserror"NoenclosinginstanceoftypeFooisaccessible"andhowdoIfixit?(11个答案)关闭5年前。我是编程新手,明年我将在大学学习它。在我的publicstaticvoidmain中...我无法创建新的SimpleCircle。这个错误只发生在我的圈子里。非常感谢你的帮助!:)publicclassTestSimpleCircle{classSimpleCircle{doubleradius;SimpleCircle(){radius=1;}SimpleCircle(doublenewR

java - 为什么java.util.Collection不直接定义next(), hasNext()?

如果Collection定义了hasNext()而不是iterator().hasNext(),我们可以更轻松地编写循环:while(collection.hasNext()){…}代替:Iteratorit=collection.iterator();While(it.hasNext()){…}当然,我知道存在循环for(Ee:collection)的简单方法。为什么接口(interface)Iterator存在? 最佳答案 因为对于同一个Collection对象,您可以同时拥有多个有效的Iterator对象。这很有用。如果Col

java - Java中Collection类的性能

全部,我浏览了很多网站,这些网站发布了各种Collection类针对各种操作(即添加元素、搜索和删除)的性能。但我也注意到,它们都提供了不同的测试环境,即操作系统、内存、线程运行等。我的问题是,是否有任何网站/Material在最佳测试环境的基础上提供相同的性能信息?也就是说,配置不应成为任何特定数据结构性能不佳的问题或催化剂。[更新]:例如,HashSet和LinkedHashSet插入一个元素的复杂度都是O(1)。然而,BruceEckel的测试声称LinkedHashSet的插入将比HashSet花费更多的时间[http://www.artima.com/weblogs/view

java - 使用 Collections.frequency() 打印某些值

我有一个数组如下:int[]array={11,14,17,11,48,33,29,11,17,22,11,48,18};我想做的是找到重复的值,然后打印它们。所以我这样做的方法是转换为ArrayList,然后转换为Set并在Setstream/.ArrayListlist=newArrayList(array.length);for(inti=0;idup=newHashSet(list);然后我使用stream循环遍历它并使用Collections.frequency打印值。dup.stream().forEach((key)->{System.out.println(key+":

java - 当方法的签名定义为 Collection<class> 时,为什么方法不能采用 Collection<subClass>

我有一个获取SResource对象列表的方法publicstaticListlistTriples(Listsubjects){//...dostuff}为什么我不能这样做ListresultsAsList=newArrayList();resultsAsList.addAll(allResults.keySet());//Icouldpossiblenotuselistsandjustusesetsandthereforegetridofthisline,butthatisadifferentissueListtriples=newArrayList();triples=Triple