问题标签 [apache-commons-collection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将 BeanPredicate 与 EqualPredicate 进行比较时,common-collections 4.1 导致编译问题
将 commons-collection 从3.2.2升级到4.1后,我在比较 BeanPredicate 和 EqualsPredicate 的集合时遇到问题。BeanPredicate 来自 commons-beanutils jar,EqualsPredicate 来自 commons-collection.jar。
根据最新的 commons-collection jar 4.1 ,EqualsPredicate 构造函数接受参数化类型,如
不是 3.2.2 中的对象
BeanPredicate 没有像<T>
它的构造函数那样的参数化类型,这就是为什么我遇到编译问题并且无法在这两个谓词之间建立关系的原因。我看到最新的 commons-beanUtils 1.9.3 BeanPredicate jar 也有 BeanPredicate 构造函数没有参数化。我也尝试输入类型,但它不起作用。如何解决此问题将不胜感激。
java - 带有比较器的 Java 8 流过滤器
我想MyObject
根据values
字段过滤列表。在这种情况下:如果任何值MyObject::getValues
小于给定value
,则谓词为假。我还没有找到使用 Stream API 的方法,所以我尝试ComparatorPredicate
了Apache
. 这是我的尝试:
然而,这会导致:
所以我的问题是为什么会发生 ClassCastException 以及如何解决它和/或如何用其他(更好的?)解决方案解决我的问题?
更新:
关于这个问题的一点更新。第一个问题 ( ClassCastException
) 是由我的示例中未包含的代码引起的。解决后它ComparatorPredicate
工作正常,所以如果你喜欢它:去吧。但是,我将接受已接受答案的建议,该建议更简单且不涉及使用外部库。特别是因为ComparatorPredicate
没有扩展java.util.function.Predicate
而是org.apache.commons.collections4.Predicate
相反。
java - Apache Commons MultiMap 已弃用,我现在应该使用什么?
自 4.1 版以来, Apache Commons 的MultiMap
接口及其实现已被弃用。MultiValueMap
而且MultiHashMap
似乎完全...
我应该使用什么作为替代方案?
java - 按键对 Apache Commons MultiValuedMap 进行排序
我想知道如何按键对 Apache Commons MultiValuedMap 进行排序。下面是使用的关键类。
下面的地图是通过迭代SummerDataOracle
值构造的。这些值按VssKey
对象推送到地图中,如下所示。
我需要在地图中实现顺序。
谢谢
apache-commons - Apache Commons Collections 是否有 ListValuedTreeMap?
我正在尝试找到 MultiValuedTreeMap 的预构建实现。简而言之,我需要一个键来通过使用列表映射到多个值。然后我需要将每个键存储在一个排序的结构中,我想应该是一个树形图——因此得名。
我发现的最接近的是 ArrayListValuedHashMap:https ://commons.apache.org/proper/commons-collections/javadocs/api-4.4/index.html
但是,我没有看到使用 TreeMap 而不是 HashMap 的版本。
我是 Apache Commons 库的新手,所以如果问题很明显/已经解决,请原谅我。
我也知道我自己可以相对轻松地实现这一点,但如果它已经存在,我不想重新发明轮子。
java - MultiValuedMap 没有标准的包装器实现
我错过了什么,还是真的没有 Apache 的 new 的默认实现MultiValuedMap
可以用来简单地包装提供Map<K, ? extends Collection<V>>
?
换句话说,我正在寻找现在已弃用的MapUtils.multiValueMap
工厂方法的直接替换:没有一个现有的实现能HashSetValuedHashMap
满足我的需求,因为我需要IdentifyHashMap
用作后端映射
jsf - java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap 错误,commons-collections-2.1
我在下面使用的项目提到了罐子: commons-collections-2.1.jar myfaces-api-1.1.3.jar myfaces-impl-1.1.3.jar 和 jsf 1.1 版,但收到此错误:
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap
并且commons-collection jar 在运行时可用。
java - 将 Guava ListMultimap 转换为 Java 地图
GuavaMultiMap
有实现ImmutableListMultimap
和ImmutableSetMultimap
. 鉴于我已经创建了一个ImmutableListMultimap<String, Anything>
实例,我怎样才能将它转换成一个java.util.Map<String, List<Anything>>
?
该asMap()
方法返回 a java.util.Map<String, Collection<Anything>>
,但不能强制转换为java.util.Map<String, List<Anything>>
。
我现在最好的是
但这看起来并不理想。鉴于实例变量的类型为 ListMultimap,难道不应该有一种方便的方法将其表示为Map<..., List>
?
Apache commons-collectionsArrayListValuedHashMap
也有同样的问题。
java - Maven 传递依赖 - Commons Collection 版本 3 与 4
我有这样的配置pom.xml
:
但不幸mvn dependency:tree
的是,向我展示了commons-beanutils
具有依赖性:commons-collections 3.x:
我不想Common Collection 3
在我的代码中,但可能有人错误地使用了这个库中的一个类(而不是Common Collective 4
首选版本)。
正如您在依赖关系树中看到的 - 我不能排除 Common Collection 3,因为它已被使用(可能发生java.lang.NoClassDefFoundError
)。
问题:
如何保护我的代码库免受 Commons Collection 3 API 的污染?