当前位置: 首页 > 知识库问答 >
问题:

几乎是一样的代码,看不出有什么不同

亢仰岳
2023-03-14
public List<List<Integer>> subsets(int[] nums) {
    List<List<Integer>> result = new ArrayList<>();
    result.add(new ArrayList<>());

    for(int i=0; i<nums.length; i++){
        int size = result.size();
        for(int j=0; j<size; j++){
            List<Integer> temp = new ArrayList<>(result.get(j));
            temp.add(nums[i]);
            result.add(temp);
        }
    }
    return result;
}
    for(int j=0; j<size; j++){
        List<Integer> temp = new ArrayList<>(result.get(j));
        result.add(temp.add(nums[i]));
    }

我不明白为什么我会有这个错误信息。

首先,我不仅找不到两个之间的任何区别,而且为什么错误消息说添加(布尔)?我想应该是add(int index)。这里有什么问题吗?

共有1个答案

支才
2023-03-14

您的线路

result.add(temp.add(nums[i]));

不等于

temp.add(nums[i]);
result.add(temp);

您不会将temp添加到result,而是将temp.add的结果添加到result,这是一个布尔值(元素是否已添加到集合中,在本例中始终为true)。

 类似资料:
  • https://leetcode.com/problems/find-all-numbers-dispapered-in-an-array/discuss/93007/simple-java-in-place-sort-solution 你能查一下上面的链接吗? 我看不懂密码 然后,第一个只是简单地使用我们可以检查是不是值。 第二个, 它最终也是一样的东西,只是为了证明索引值=index+1。 但

  • 问题内容: 范例1: 输出为: 范例2: 输出: 我只是不明白为什么将saySomething设为非静态会导致第二次调用saySomething调用Cow版本而不是Animal版本。我的理解是, 这两种情况都是输出。 问题答案: 静态方法在编译时绑定到其类,并且不能多态使用。在Animal上声明“静态”方法时,该方法永远绑定到Animal类,并且不能被覆盖。静态方法绑定到Class对象,而不是Cl

  • 在编写优化的函数时,我在中发现了一些非常奇怪的行为。让我先向您展示代码(为了清楚起见,我标记了差异): 快速执行一,C: 第二,C: 看起来一样对吧?海湾合作委员会不同意。使用

  • 问题内容: 我是一名新的Java学习者。最近,我在阅读泛型编程,并对此感到困惑。 问题答案: 首先,这些是在不同上下文中使用的完全不同的构造。 是通用类型声明的一部分,例如 它使用类型参数声明泛型类型,并引入界限,因此必须是的子类型。 是带通配符的参数化类型,可以作为普通类型用于变量和方法声明等中: 变量声明诸如装置类型的该被参数化与一些亚型。 例如,给出此声明 您可以: 将的某些子类型分配给:

  • 问题内容: 不会初始化内存,只会将其清零。它返回一个指向新分配的零值的指针。 仅创建切片,地图和通道,并将其初始化返回。 在这种情况下,“初始化”是什么意思?new和make之间还有什么其他区别? 问题答案: 如制作切片,地图和通道中所述: 内置函数make需要一个type ,该类型 必须是slice,map或channel type ,还可以选择后面是特定于类型的表达式列表。 它返回类型的值(不