Questions tagged «guava»

Google的Java和Android开发核心Java库。

5
Google Guava与Apache Commons [关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我一直在寻找Java中的双向地图实现,偶然发现了这两个库: Google Guava(以前称为“ Google Collections”) Apache Commons集合 两者都是免费的,具有我一直在寻找的双向地图实现(Apache中的BidiMap,谷歌中的BiMap),尺寸几乎惊人地相同(Apache 493 kB,Google 499 kB)[ed .:不再是真的!在所有方面都与我非常相似。 我应该选择哪一个,为什么?还有其他等效的替代方法(必须免费并且至少具有双向地图)吗?我正在使用最新的Java SE,因此无需人为地限制为Java 5或类似的东西。

3
初始化Guava ImmutableMap
番石榴提供了一个不错的快捷方式来初始化地图。但是,当我的地图初始化为9个条目时,出现以下编译器错误(Eclipse Indigo)。 of(K, V, K, V, K, V, K, V, K, V)类型中的方法ImmutableMap不适用于参数 (String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String) ImmutableMap<String,String> myMap = ImmutableMap.of( "key1", "value1", "key2", "value2", "key3", "value3", "key4", "value4", "key5", "value5", "key6", "value6", "key7", "value7", "key8", "value8", …
140 java  dictionary  guava 

8
Guava库:最有用和/或隐藏的功能是什么?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或修辞性的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 我有过的快速扫描番石榴API,它提供了新的集合类型(Multimap以及BiMap例如出现有用),我想包括在项目(S)在我工作的图书馆。 但是,如果它们对图书馆没有太大好处,我也不愿意将它们包括在内,并且学习这些功能会浪费宝贵的时间。 您是否在项目中包括了Guava库,并以任何意想不到的方式证明了它有用吗?您将来会一直使用它吗?它的主要好处/节省时间是什么?它的隐藏功能是什么?
131 java  guava 

8
如何在Java中生成连续整数的列表或数组?
有没有产生一个简短而亲切的方式List<Integer>,或者可能是 Integer[]或int[],与一些连续值start值的end价值? 也就是说,以下内容比以下内容短,但等于1: void List<Integer> makeSequence(int begin, int end) { List<Integer> ret = new ArrayList<>(end - begin + 1); for (int i=begin; i<=end; i++) { ret.add(i); } return ret; } 番石榴的用途很好。 更新: 绩效分析 由于使用本机Java 8和第三方库都可以很好地回答这个问题,所以我认为我应该测试所有解决方案的性能。 第一个测试只是[1..10]使用以下方法测试创建包含10个元素的列表: classicArrayList:我问题中上面给出的代码(与adarshr的回答基本相同)。 eclipseCollections:下面的Donald答案中使用Eclipse Collections 8.0 给出的代码。 guavaRange:下面的daveb答案中给出的代码。从技术上讲,这并不会创建List<Integer>而是ContiguousSet<Integer>-,但是由于它Iterable<Integer>是按顺序实现的,因此大多数情况下可以实现我的目的。 intStreamRange:下面弗拉基米尔的答案中给出的代码,它使用IntStream.rangeClosed()-在Java 8中引入的。 streamIterate:下面的Catalin答案中给出的代码,该代码也使用IntStreamJava 8中引入的功能。 以下是上述所有大小为10的列表的结果,以千千克/秒为单位(数字越大越好): ...再一次列出大小为10,000的列表: 最后一张图表是正确的-除Eclipse和Guava之外的解决方案太慢,甚至无法获得单个像素条!快速的解决方案是其他解决方案的10,000到20,000 倍。 …

3
番石榴和apache等效库之间有哪些重大改进?
当前,我们使用apache集合,字符串utils等。我需要确定是否应该从apache基础实现中切换。 重要标准是开发人员的易用性。性能/内存使用对于我们来说还不是一个重要的问题。发展速度是此时的关键标准。 我希望能得到有关番石榴使开发人员的生活变得更加轻松的意见。

1
使用Google Guava库进行Android开发是一个好主意吗?
我参与了Android应用程序的开发,该应用程序是Web服务的“相当”厚的移动客户端。它与服务器进行大量通信,但也具有许多内部逻辑。因此,我决定使用Google Guava库的某些功能来简化开发过程。这是我非常感兴趣的功能列表:不可变集合,基本utils,集合扩展,函数式编程糖和习惯用法(common.collect和common.base),基元实用程序(common.primitives),哈希实用程序(common.hash),并发实用程序(futures和AsyncFunction)。我不想在Android中使用的东西:(common.cache请参见下面的问题),common.eventbus(为此我们有更好的Android特定库,例如Otto),common.io(我们可以使用okio 现在适用于Android)。 我读到,使用Guava for Android会大大减慢编译过程,并降低整个运行时性能:Android上的Guava Cache的性能 较差 (在这种情况下,这是合理的,不需要为Android使用Guava的缓存),并且 添加了Google番石榴到Android项目-大大减慢了构建速度 那么,是不是有效的在Android项目使用番石榴库或该库的设计使用仅用于服务器端开发,我应该用标准的解决方案去?任何解释将不胜感激。
122 java  android  guava 

11
接口/枚举列出了标准的mime类型常量
我正在标准库(例如apache commons,jax,jboss,javax)中寻找一个列出所有标准mime类型(aka content-type)值的接口或枚举。 该接口不应被其他类所困扰,否则将很难将整个类作为gwt源代码包含在内。 例如 interface ContentType{ String JSON = "Application/JSON"; blah ... blah ... } 要么, enum ContentType{ JSON("Application/JSON"), blah ... blah ... }

18
具有重复键的地图实现
我想要一张包含重复键的地图。 我知道有很多地图实现(Eclipse向我展示了大约50个),所以我敢肯定一定有一个允许这种实现的地图。我知道编写自己的地图很容易做到这一点,但是我宁愿使用一些现有的解决方案。 也许在Commons Collections或Google Collections中?

5
将多个集合合并为一个逻辑集合?
假设我有恒定数量的集合(例如3个ArrayLists)作为类的成员。现在,我想将所有元素公开给其他类,以便它们可以简单地遍历所有元素(理想情况下为只读)。我正在使用番石榴集合,我想知道如何使用番石榴可迭代器/迭代器在内部集合上生成逻辑视图而无需制作临时副本。
110 java  collections  guava 

15
HashMap的构建器
Guava为Java类型提供了很棒的工厂方法,例如Maps.newHashMap()。 但是,还有Java Maps的构建器吗? HashMap<String,Integer> m = Maps.BuildHashMap. put("a",1). put("b",2). build();
109 java  collections  guava 

9
相当于IOUtils.toString(InputStream)的番石榴
Apache Commons IO有一个很好的便捷方法IOUtils.toString()来读取InputStream字符串。 由于我正尝试从Apache Commons转移到Guava:Guava中有等同的功能吗?我查看了com.google.common.io程序包中的所有类,但几乎找不到任何简单的东西。 编辑:我理解并赞赏字符集的问题。碰巧,我知道我所有的来源都是ASCII(是,ASCII,不是ANSI等),因此在这种情况下,编码对我来说不是问题。
106 java  io  inputstream  guava 

7
Google Guava isNullOrEmpty的集合
我看到番石榴对字符串有isNullOrEmpty实用程序方法 Strings.isNullOrEmpty(str) 列表是否有类似内容?就像是 Lists.isNullOrEmpty(list) 应该等于 list == null || list.isEmpty() 另外,我们对数组有类似的东西吗?就像是 Arrays.isNullOrEmpty(arr) 应该等于 arr == null || arr.length == 0
102 java  guava 

4
Java谓词
我正在研究Predicate在Java 中使用的代码。我没用过Predicate。有人可以指导我学习任何有关PredicateJava的教程或概念性解释及其实现吗?
100 java  guava  predicate 


12
如何缩小代码-dex中的65k方法限制
我有一个相当大的Android应用程序,它依赖于许多图书馆项目。Android编译器对每个.dex文件有65536个方法的限制,我已经超过了这个数目。 达到方法限制时,基本上可以选择两种路径(至少我知道)。 1)缩小代码 2)构建多个dex文件(请参阅此博客文章) 我对两者进行了调查,试图找出导致我的方法计数过高的原因。Google Drive API的Guava依赖项占最大部分,超过12,000。Drive API v2的库总数超过23,000! 我想我的问题是,您认为我应该怎么做?我是否应该删除Google云端硬盘集成作为我的应用程序的功能?有没有一种缩小API的方法(是的,我使用proguard)?我是否应该走多dex路线(看起来很痛苦,尤其是与第三方API的交流)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.