Tag: guava

在spring xml config中定义guava HashBasedTable / Table

我正在尝试在spring xml配置文件中创建并填充番石榴HashBasedTable ,但我无法做到。 我的表看起来像这样: Table myTable; 我已经在我的xml中尝试了这个,但不知道如何将新值放入表中:

Spark – 可以在JAVA中将MultiMap转换为DataFrame

我正在尝试将数十亿数据值的MultiMap转换为Spark DataFrame以运行计算,然后将结果写入cassandra表。 我从以下cassandra查询和循环生成多图。 我很乐意接受建议,如果有更好的方法来获取和操纵数据到DataFrame,就像我在循环中一样。 代码更新了答案: //Build ResultSet from cassandra query for data manipulation. Statement stmt = new SimpleStatement(“SELECT \”Power\”,\”Bandwidth\”,\”Start_Frequency\” FROM \”SB1000_49552019\”.\”Measured_Value\”;”); //Statement stmt = new SimpleStatement(“SELECT power, bandwidth, start_frequency FROM model.reports;”); stmt.setFetchSize(1000); ResultSet results = session.execute(stmt); // Get the Variables from each Row of Cassandra Data Multimap data = LinkedListMultimap.create(); for (Row row : results){ […]

您是否可以使用仿函数/函数式编程在Java 7中对列表进行分组(并计算每组的元素)?

你可以分组List types = new ArrayList(Arrays.asList(TypeEnum.A, TypeEnum.B, TypeEnum.A)); 到Map countPerType; 在 Java 8 之前使用仿函数(例如Google的Guava , Apache的Commons Functor )? 我试图了解函数式编程,但我不确定这种事情是否真的可行(因为我不只是映射集合值,而是试图聚合)? 在命令式的风格,我会做这样的事情: public Map countByGroup(List types) { Map countedTypes = new HashMap(); for(TypeEnum type : types) { if(countedTypes.containsKey(type)) { countedTypes.put(type, countedTypes.get(type) + 1); } else { countedTypes.put(type, 1); } } return countedTypes; } 编辑:依赖副作用似乎有点不合适 – 或者它是如何做到的……? Procedure count […]

使用Java StAX解析XML – 计算内容标记的数量

我有大的XML文件,我解析如下: public class Solution { private static final String ROOM_ID = “RoomID”; private static final String CONTENT = “Content”; private static final String LOGIN_NAME = “LoginName”; private static final String CONVERSATION_ID = “ConversationID”; private static final String FILE_DUMP = “FileDump”; private static final String MESSAGE = “Message”; private static final String CONVERSATION = “Conversation”; private […]

如何在不改变equals和hashcode的情况下插入到set中

我正在寻找一个建议。 我有一个带有firstName和String lastName的Person类当我想要插入具有相同String的列表值时: set.add(new Person(“firstName”,”lastName”)) set.add(new Person(“firstName”,”lastName”)) 该集合不会过滤对象,他们仍然进入集合。 有没有建议创建集合列表而不覆盖equales和hashcode函数? 也许用番石榴或一些groovy列表? 谢谢,或者。

google common cache – maximumSize的默认值(和其他“可选”设置) – 想要一个使用所有“可用”内存的缓存

我刚刚通过搜索缓存API找到了Guava (它非常适合我的需求)。 但是在阅读wiki和Javadoc时出现了一个问题 – CacheBuilder可以采用什么设置的默认值? Javadoc声明“这些function都是可选的”和“使用默认设置构造一个新的CacheBuilder实例,包括强键,强值,并且不会自动驱逐任何类型。” 在我看来, maximumSize一个很好的默认值是相对于Runtime.getRuntime().freeMemory(); 最后,我想要一个使用给定系统上可用内存的缓存。 所以我需要一个驱逐策略,询问freeMemory()有多少可用(可能相对于Runtime.getRuntime().maxMemory() )

如何比较两个MultiMaps?

我有两个Multimaps,它们是从两个巨大的CSV文件创建的。 Multimap mapOne = ArrayListMultimap.create(); Multimap mapTwo = ArrayListMultimap.create(); 我假设一个CSV列作为密钥,每个密钥都有数千个与之关联的值。 这些Multimap包含的数据应该相同。 现在我想比较这些Multimap的数据,并查找是否有任何值不同。 以下是我想到的两种方法: 方法一: 从Multimap一个大列表。 这个大清单将包含一些单独的清单。 每个较小的列表都包含一个唯一值,该值是从Multimap读取的“关键”及其相关值,它将构成该单个列表的其余部分。 ArrayList<Collection> bigList = new ArrayList<Collection>(); 在bigList中将是单个小列表A,B,C等。 我计划在检查来自第二个Multimap单个列表包含该“key”元素的基础上从两个文件的每个bigList中选择单个列表。 如果是,则比较这两个列表并找到任何无法匹配的内容。 方法二: 比较Multimap但我不确定如何做到这一点。 哪种方法应该有更短的执行时间? 我需要在最短的时间内完成操作。

Guava Joiner无法使用前缀和后缀

我在Joiner中要求能够使用前缀和后缀元素。 例如 String str[] = {“a”, “b”, “c”}; Joiner.on(“,”).prefix(“‘”).suffix(“‘”).join(str); 预期产出将是: ‘a’,’b’,’c’ 我们有替代方案吗? 因为番石榴不这样做(或者我不知道)。 有了java 8还有更好的选择吗?

Java 8可选asSet()

所以我现在已经使用了Guava的Optional一段时间了,我转向Java 8所以我想使用它的Optional类,但它没有我最喜欢的方法来自Guava,asSet()。 有没有办法用Java 8 Optional来做到这一点,我没有看到。 我喜欢将可选项视为一个集合,所以我可以这样做: for( final User u : getUserOptional().asSet() ) { return u.isPermitted(getPermissionRequired()); } 在某些情况下,避免需要额外的变量。 IE Optional optUser = getUserOptional(); if ( optUser.isPresent() ) { return optUser.get().isPermitted(getPermissionRequired()); } 有没有一种简单的方法可以在Java 8的Optional中复制Guava风格? 谢谢

当有人使用MapMaker或WeakHashMaps时,有人可以向我解释一下吗?

我读过许多人非常喜欢Google Guava(collections集)的MapMaker ,但是我看不出它有什么用处。 我已经阅读了javadoc,它说它的行为类似于ConcurrentHashMap 。 它还说new MapMaker().weakKeys().makeMap()几乎总是可以用作WeakHashMap的替代品。 但是,读取ConcurrentHashMap和WeakHashMap的javadoc会让我想知道何时使用它是有用的? 在我看来,你无法保证你在地图中放置的任何东西都会存在,或者我误解了?