Tag: lambdaj

比较集合内的集合

我有这样的一套: Set<Set> NestedSet = new HashSet<Set>(); [[Node[0], Node[1], Node[2]], [Node[0], Node[2], Node[6]], [Node[3], Node[4], Node[5]]] 我想比较和合并嵌套集内的集合。 [0,1,2]和[0,2,6]具有共同的要素。 所以应该合并它们形成0,1,2,6。 输出应该是这样的: [[Node[0], Node[1], Node[2], Node[6]], [Node[3], Node[4], Node[5]]] 有没有有效的方法?

Java中嵌套集合/结构的类型安全展平

我想在Java中压缩任意深度嵌套的某些类型T元素的集合/结构 ,最好用 只有实时视图而不是复制的集合; 不仅处理集合,而且还有Iterator,任意维度的T数组,Iterable,以及任意混合和嵌套的所有这些结构; 静态类型安全。 有没有一个可以处理这个的java库? 番石榴似乎只处理一个嵌套级别,即Collection<Collection> –flatten – > Collection 。 lambdaj看起来很有希望:我可以以某种方式结合on() , asIterator()和flattenIterator()来实现这一目标吗? 以静态类型安全的方式?

Java:如何在没有迭代的情况下从List 转换为Map

我有一个对象列表,我需要转换为一个映射,其中键是每个元素的函数,值是每个元素的另一个函数的列表。 实际上,这是通过它们的function对元素进行分组。 例如,假设一个简单的元素类: class Element { int f1() { … } String f2() { … } } 以及这些的清单: [ { f1=100, f2=”Alice” }, { f1=200, f2=”Bob” }, { f1=100, f2=”Charles” }, { f1=300, f2=”Dave” } ] 那我想要一张如下地图: { {key=100, value=[ “Alice”, “Charles” ]}, {key=200, value=[ “Bob” ]}, {key=300, value=[ “Dave” ]} } 任何人都可以在没有迭代的情况下在Java中建议一种简洁的方法吗? LambdaJ的group方法与Guava的Maps.transform的Maps.transform几乎可以实现,但是group不会生成地图。