Java中泛型类型内的泛型类型?

时间:2016-01-11 05:30:09

标签: java generics

如果这个问题对你来说太容易了,请耐心等待。我是Java泛型的新手,遇到了一个令我感到困惑的编码示例。它希望在给出一组不同的整数时返回所有可能的子集。

我的问题:

  1. 为什么以下代码使用List<List<Integer>>?您可以使用List<Integer>吗?

  2. List<List<Integer>>等结构的技术术语是什么?我想在线阅读更多内容。

  3. 非常感谢你的帮助!

    public class Example {
        public List<List<Integer>> subsets(int[] nums) {
    
        }
    }
    

4 个答案:

答案 0 :(得分:3)

一个集合(List)将只返回一个子集,以返回您需要集合集合的所有子集。例如,如果初始集是(1,2,3),则所有子集都是(1,2,3),(1,2),(1,3),(2,3),(1),(2) ,(3)。如你所见,他们每个都是列表。要返回此类结果,您应该使用List of List。

答案 1 :(得分:2)

关键部分是所有可能的子集,这意味着每个条目有多个值(或ListList。你无法代表

1,2,3
4,5,6

作为两个不同的集合,没有集合集合(或数组数组)。

答案 2 :(得分:1)

您可以使用List吗?是的,没有。

您始终可以找到从n维结构到1维结构的投影。例如。只需浏览所有列表并将成员添加到单个列表中。

但你不能(总是/大部分时间)扭转这个过程,一旦你有List<Integer>它有时候不可能回到List<List<Integer>>,或者它真的很复杂而不是值得计算时间。

答案 3 :(得分:1)

太简单了。 gameMoney只是一个整数列表。将其视为2D数组。 将a,b,c视为List<List<Integer>>

List<Integer>

然后 a-> 1,2,3,4,5.. b->5,6,8.. c->4,6,9,7,4.. xyz只是a,b,c的列表。