文章目录一. Guava概述二. Strings类三. Preconditions类四. Optional类1. 背景与概述2. Guava Optional类2.1 概述2.2 常用方法2.3 源码参考2.4 测试3. Java 8 中Optional类3.1 部分源码3.2 创建Optional对象的方法3.3 判断值是否存在3.4 获得值3.5 ifPresent(Consumer co
是否可以提供创建Multimap< String,String>的示例.用Spring? 我很想知道如何在应用程序上下文XML文件中完成它.解决方法:Google Collections被弃用赞成Guava,所以我将回答关于番石榴的问题. 我将使用这个Bean类: public class Bean{ private Multimap<String, String> map;
我正在尝试实现一个相当简单的方法,我想过滤一个列表.这是一个File对象列表,应该只有一个以.asp结尾的文件 – 我希望从列表中排除一个.请记住,我实际上并不想从列表中删除此文件,我只是希望能够忽略该列表的特定迭代. 我的原始(蛮力)实现看起来像这样: public List<File> getSurve
我使用Guava MultiMap(impl LinkedListMultimap)来允许我为一个键存储多个值,但后来我想按最高值对地图进行排序并返回键. 即 第一次运行后,我有 key1:{13} key2:{7} key3:{11} 第二次运行后,我现在有了 key1:{13,14} key2:{7,18} key3:{11,1} 第三次运行后,我现在有了 key1:{
我有两套说: ImmutableSet<String> firstSet = ImmutableSet.of("1","2","3"); ImmutableSet<String> secondSet = ImmutableSet.of("a","b","c"); 我想得到一个集合,其中包含与第二个集合的每个元素连接的第一个集合的元素,以及一个分隔符,即输出应该
List使用: @Test public void testList(){ List<String> list = Splitter.on("-") .splitToList("A-B-C"); System.out.println(list); List<String> list1 = new ArrayList<>(list);
因为每个人都称赞Google Collections(例如在here) 为什么我找不到ArrayUtils.toObject()和ArrayUtils.toPrimitive()的等价物?它是无法使用的吗?我想念它吗?解决方法:说实话,我不确定这些方法中的任何一种是否应该符合与收集相关的操作,因此我想知道为什么它们首先就是那里. 为了澄清
我想知道有什么更好的方法可以在大型SortedMap中找到大于输入值的第一个值,而不是在下面的示例中循环遍历所有值.或者,如果SortedMap是用于此的最佳结构. 这可以通过谷歌收藏来实现吗? 提前致谢 public class mapTest { public static void main(String[] args) { SortedMap<Doubl
我才开始学习番石榴.所以我不知道最佳做法等. 这些是代码(它绑定一些类并按输入集合放入Order): public ImmutableList<ModelBean> toBean(Collection<Shape> model) { return ImmutableList.copyOf(Collections2.transform(Ordering.from(new Comparator<Shape>() { @
我确定这是一个非常简单的问题,但请看下面的代码示例: final ImmutableSortedSet<String> notOk = ImmutableSortedSet.naturalOrder().build(); final ImmutableSortedSet<String> ok = new ImmutableSortedSet.Builder<String>(Ordering.natural()).build(); final Immu
我通常通过Guava的Precondition方法检查几乎所有的构造函数和公共方法参数.私有方法参数通常带有断言.但是,现在我正在考虑替换“内部”前置条件检查,即检查构造函数/工厂方法/一般方法(不属于公共API /应用程序API)…使用断言,您如何看待?也许这种方式有点快,因为我有很多支票;-)
我有一个用例,其中加载我的缓存数据的方法是批量调用,但我永远不会使用getAll从缓存中获取数据.有没有办法在一个loadAll上有多个并发获取所有块?我不希望个人使用不同的密钥导致多次调用数据源. cache.get(key1); // missing entry, starts refresh cache.get(key2); // separate
在我的应用程序中,我有一个列表名称.我希望根据索引值将其转换为地图.例如 List<String> names = new ArrayList<String>(); names.add("Pratik"); names.add("Pratik"); names.add("Ram"); names.add("Varun"); 你能帮我一些guava / java api方法,它可以帮助我得到一个地图,
在任何人得出结论之前,是的,我知道需要逃脱管道符号:-) ……在我的代码中,我已经这样做了: String line = "C0000005|A13433185|SCUI|RB|C0036775|A7466261|SCUI||R86000559||MSHFRE|MSHFRE|||N||" line = line.trim(); String[] columns_array = line.trim().split("\\|");
我正在尝试将Guava表导出为CSV.下面的代码有效,但它跳过了我想在输出中看到的第一列.你能提出什么建议吗? 编辑:显然使用values()和keySet()分别工作. final RowSortedTable<String, String, Double> graph = TreeBasedTable.create(); graph.put("A", "0", 0.0); graph.put("A", "
我有一个Web服务,它从另一个系统接收xml事件,使用特定的工作流程处理它们,并将一个潜在错误列表作为HTTP响应发回. 事件处理工作流由几个处理程序组成(比方说:预处理程序,Persister和Validator),使用Guava’s EventBus实现.处理程序相互发送事件.像这样的东西: public class Request
我可能错了,但对我来说,我们可以为一个对象重写equals,以便你认为它们有意义地等于. 映射中的所有条目都具有不同的键,并且集合中的所有条目都具有不同的值(不是有意义的等于) 但是当使用TreeMap或TreeSet时,您可以提供比较器.我注意到,当提供比较器时,会绕过对象的equals方法,并且
在Google Guava EventBusExplained页面中,我不明白他们何时说出以下内容: To listen for a common event supertype (such as EventObject or Object)… …in traditional Java events: not easy. …with EventBus: events are automatically dispatched to listeners of
我想在我的Android应用程序中使用函数式编程,因为Java8不可用我决定使用Guava Library.但显然在番石榴图书馆里没有REDUCE聚合.如果有人能解释为什么会这样,我很想知道,但我需要的是一种解决方法. 如何在Guava中模拟REDUCE / DROP函数编程功能?例如,如何在不自编编码的情况下计算Flu
我有一个set multimap,它存储了一个月的一些字符串(整数). MonthlyCount = {1:["hello"],2:["hello","hi"]} 我有一个地图,计算每月的字符串数量并添加它们.我使用containsKey过滤器来检查密钥是否存在于集合中,并将它们添加到地图中. final String[] months = new DateForma
我有一个用例,我希望从多个线程将条目填充到数据结构中,并在达到特定大小后开始删除旧记录.所以我决定使用Guava Loading Cache. 我想从多个线程将条目填充到我的加载缓存中,并且我将基于驱逐的策略设置为基于大小的驱逐. private final ScheduledExecutorService executorServi
我有类实现Comparator< String>它应该以这样的方式对字符串进行排序,即第一个单词为罗马数字的字符串应该在不以罗马数字开头的字符串之前,如果两个字符串都以罗马文字开头,则应该有两种情况: >按罗马数字排序,然后等于字符串的其余部分>按字符串的其余部分排序,如果等于罗马数字 我
我找到了唯一的方法: Ints.tryParse() 在番石榴中有没有类似的Double / Float方法? 如果没有,缺席的原因是什么? 谢谢.解决方法:我们(好吧,我)有一个implementation在完成代码审查不到24小时前的工作.它应该有希望在14.0发布. (除了int之外的其他整数类型,包括无符号类型,都是在刚刚
我正在尝试创建一个工厂(从String参数生成新实例). 我有一个Monster类(超类)和Robot1类(扩展了Monster). 我的工厂声明: private static final ImmutableMap<String, Class<? extends Monster>> DISPATCHER = ImmutableMap.of("robot1", Robot1.class); 但我得到: Type mismatch:
我正在为第三方API提供一些外观类,我需要包装一个迭代器,以便我可以替换用我自己的外观对象迭代的东西. 这是我的facade类的简化版本,它包装了一个名为Item的API类 class FacadeItem { Item item; FacadeItem(Item item) { this.item = item; } } API提供此