草庐IT

Collections2

全部标签

java - 为什么 Java Collections API 不包含图形实现?

我目前正在学习JavaCollectionsAPI并且觉得我对基础知识有很好的理解,但我一直不明白为什么这个标准API不包含图形实现。三个基类(List、Set和Map)很容易理解,它们在API中的所有实现都非常简单和一致。考虑到图形作为给定问题建模的潜在方法出现的频率,这对我来说没有意义(它可能确实存在于API中,当然我没有在正确的地方寻找).SteveYegge在他的一篇博文中建议,程序员在解决问题时应该首先考虑图,如果问题域不适合这种数据结构,那么才考虑替代结构。我的第一个猜测是没有通用的方式来表示图形,或者它们的接口(interface)可能不够通用,以至于API实现无法发挥作

java - 用 Java Collections 中的什么替换遗留 Stack?

这可能是一个Java琐事问题。我用过Stack实现多次。我读到这被认为是遗留类,并且由于它是Vector的子类,这使得它在单线程应用程序中的性能很差。我的问题是,JavaCollection类中最好的选择是什么?是否有另一个可供选择的Stack类(也许名称不同)?我的意思是,围绕另一个现有数据结构实现堆栈很容易,但我希望有一个现有的Stack可供使用。 最佳答案 如果您阅读更新的Javadoc(例如1.6或1.7)而不是旧的1.4.2文档,您会发现:AmorecompleteandconsistentsetofLIFOstackop

java - Google Collections 中的惰性不可修改列表

我一直在寻找通用惰性不可修改列表实现的体面实现来包装我的搜索结果条目。任务的不可修改部分很容易,因为它可以通过Collections.unmodifiableList()实现,所以我只需要整理出惰性部分。令人惊讶的是,google-collections没有什么可提供的;同时LazyListfromApacheCommonsCollections不支持泛型。我找到了anattempt在google-collections之上构建一些东西,但它似乎不完整(例如不支持size())、过时(不使用1.0final编译)并且需要一些外部类,但可能是用作构建我自己的类(class)的良好起点。有

java - 泛型:无法从 Collections.emptyList() 转换为 List<String>

为什么publicListgetList(){if(isMyListOKReady())returnmyList;returnCollections.emptyList();}编译很好,但是对于publicListgetList(){returnisMyListReady()?myList:Collections.emptyList();}Eclipse说"Typemismatch:cannotconvertfromListtoList"? 最佳答案 您需要注意空列表的类型安全。所以像这样返回空字符串列表publicListgetL

带有数组的 Java Collections.rotate() 不起作用

我有以下Java代码:importjava.util.Arrays;importjava.util.Collections;publicclassTest{publicstaticvoidmain(String[]args){int[]test={1,2,3,4,5};Collections.rotate(Arrays.asList(test),-1);for(inti=0;i我想让数组旋转,但是我得到的输出是12345这是为什么?还有其他解决方案吗?编辑:所以这是可行的:importjava.util.ArrayList;importjava.util.Collections;imp

Java 同步块(synchronized block)与 concurrentHashMap 与 Collections.synchronizedMap

假设如果有一个同步方法并且在该方法中,我会像这样更新一个hashmap:publicsynchronizedvoidmethod1(){myHashMap.clear();//populatethehashmap,takesabout5seconds.}现在当method1正在运行并且hashmap正在重新填充时,如果有其他线程试图获取hashmap的值,我假设它们会被阻止?现在不使用sync方法,如果我像下面这样将hashmap更改为ConcurrentHashMap,会有什么行为?publicvoidmethod1(){myConcurrentHashMap.clear();//p

java - Collections.unmodifiableCollection(list) 是否复制集合?

privateListlist;如果我们使用Collections.unmodifiableCollection(list),这会返回集合的副本,还是比创建副本更快?我们可以做other.addAll(list)但我们有600,000个对象的列表,所以addAll不是很好。调用方只需要一个只读集合。 最佳答案 Collections.unmodifiableList只是返回一个不可修改的包装器;它不会复制输入列表的内容。它的Javadoc相当清楚地说明了这一点:Returnsanunmodifiableviewofthespecif

java - 使用 Google Collections 创建弱多图

是否有与MultiMaps的漂亮MapMaker等效的工具?目前我这样创建缓存:publicstaticMap>personCache=newMapMaker().weakKeys().makeMap();MultiMap的全部要点是避免嵌套的列表值。有什么方法可以用弱键构造多映射? 最佳答案 不幸的是没有。然而。您可以在我们的问题数据库中提交MultimapMaker功能请求吗?http://google-collections.googlecode.com 关于java-使用Goog

java - Lombok @Getter 和 Collections 的副本

在List字段上使用@Getter工作正常,但是在尝试升级到Java8时我遇到了ConcurrentModificationException,因为getter生成Lombok不执行字段的复制,如果您希望防止实例状态的外部修改,这是必不可少的。关于如何让Lombok在getter上复制Collection的任何想法,或者我只能自己编写吗? 最佳答案 来自@Getterand@Setter文档:Youcanannotateanyfieldwith@Getterand/or@Setter,toletlombokgeneratethede

java - 了解 Java 中的 Collections.reverseOrder() 方法

考虑sort的重载定义之一方法来自Array类:publicstaticvoidsort(T[]a,Comparatorc)逆序排列数组的常用方法是传递Comparator由Collections.reverseOrder()返回作为此方法的第二个参数。让我们看看Collections.reverseOrder()的实现来自openjdk7的方法:publicstaticComparatorreverseOrder(){return(Comparator)ReverseComparator.REVERSE_ORDER;}ReverseComparator类:privatestaticc