相关疑难解决方法(0)

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

我想在Java中压缩任意深度嵌套的某些类型T元素的集合/结构,最好用

  • 只有实时视图而不是复制的集合;
  • 不仅处理集合,而且还有Iterator,任意维度的T数组,Iterable,以及任意混合和嵌套的所有这些结构;
  • 静态类型安全.

有没有一个可以处理这个的java库?


番石榴似乎只处理一个嵌套级别,即Collection<Collection<T>>--flatten - > Collection<T>.

lambdaj看起来很有希望:我可以以某种方式结合on(),asIterator()flattenIterator()实现这一目标吗?以静态类型安全的方式?

java generics collections type-safety lambdaj

10
推荐指数
1
解决办法
1638
查看次数

Java流和列表列表

出于某种原因,我无法解决如何使用流将这个深层嵌套列表转换为新列表的问题.

   every A in List<A> contains -> 
   List<B> where every B contains -> 
   List<C> where every C contains -> List<String>
Run Code Online (Sandbox Code Playgroud)

我尝试了许多不同的迭代,如:

  List<String> newlist =  listA.getB()
                   .stream()
                   .filter(b -> b.getC()
                   .stream()
                   .filter(c -> c.getPeople)
                   .collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)

我充满了困惑......我可以通过for循环轻松完成这项工作,但我听说流简单易用,我想开始更多地使用它们.

java java-stream

6
推荐指数
1
解决办法
133
查看次数

Java-使用递归展平数组

我一直在练习算法,递归总是我的弱点.此问题要求将嵌套数组展平为单个数组.如果使用给出O(n ^ 3)[给定相同大小的3d数组]解决方案的循环,这将是简单的.

然而,随着递归我一直在努力几个小时.这就是我所拥有的,请注意我已经尝试了我的代码尝试不同的解决方案,这正是我决定留下来发布给你们的人.

我想要的是两件事,无论如何要修复我当前的代码以获得正确的输出,并且有一种更简单,更简洁的方式来使用递归编写此代码,谢谢!

奖金问题,如果我不知道嵌套数组的维度,那么我将如何使用递归来解决这个问题?

编辑 好吧经过一些硬编码(我不想这样做)后,我设法让这个工作.但是代码现在是硬编码而且非常混乱,无论如何都要清理代码或者使用递归来解决这个问题的简单方法?

EDIT2 我正在尝试使用辅助方法递归重做此问题.我会看看我是否有更好的运气使用这种风格

import java.io. * ;
    import java.util. * ;
    class Solution {
    // static int oneLen = 0;
    //static int twoLen = 0;
    //static int threeLen = 0;

    static int oneCnt = 0;
            static int twoCnt = 0;
            static int threeCnt = 0;
            static ArrayList < Integer > result = new ArrayList < Integer > ();
            public static ArrayList < Integer > flatten(int [][][] arr){

    if (oneCnt < arr[threeCnt][twoCnt].length && !(oneCnt …
Run Code Online (Sandbox Code Playgroud)

java arrays recursion

3
推荐指数
1
解决办法
1577
查看次数