如何List<List<Integer>>
在Java中初始化?
我知道这List
是一个接口,可以使用ArrayList
或LinkedList
实现List<Integer> list = new ArrayList<Integer>()
,但是在初始化时List<List<Integer>> list = new ArrayList<ArrayList<Integer>>();
会出现错误的不兼容类型:
ArrayList<ArrayList<Integer>> cannot be converted to List<List<Integer>>.
那我该如何进行呢?
用
List<List<Integer>> list = new ArrayList<List<Integer>>();
或从Java 1.7开始
List<List<Integer>> list = new ArrayList<>();
类初始化规则规定:如果由于访问静态字段而触发类初始化,则只初始化声明了静态字段的类,即使静态字段被子类、子接口的类型或接口的实现类引用,也不会触发超类或子类的初始化。然后在下面的代码中,只应打印“初始化超类”。 } 当我运行这个时,输出:
据我所知,在Java11中,这两个操作可以在一行中完成,不是吗?
问题内容: 正如某些消息来源所说,Java实例初始化块在创建实例时或在构造函数之前立即执行。但是想象一下这种情况: 输出是(如预期的那样): 所以我的问题是-实例初始化块的正确定义是什么,因为它显然没有在构造函数之前执行,因为输出应该是 因为Main()构造函数是在调用super()之前调用的,所以Main初始化块应该是第一个。 问题答案: 不会。初始化块直接复制到构造函数中。显然那里也有一个隐式
问题内容: 我知道当我初始化一个char数组时: 要么 为什么不喜欢 初始化数组: 为什么它们不同?它是Java哲学的本质之一还是其背后的某些原因? 问题答案: 如果您曾经使用过 C ,那么答案就非常简单。在 C语言中 ,创建数组的方式是在堆栈上分配一个足以容纳元素数量的静态内存长度,并使用指针指向第一个元素-或堆上动态内存长度,然后用指针指向第一个元素。 在 C ++中 ,第二个版本已更改为
“随着计算机的进步,‘不安全’的程序设计已成为造成编程代价高昂的罪魁祸首之一。” “初始化”和“清除”是这些安全问题的其中两个。许多C程序的错误都是由于程序员忘记初始化一个变量造成的。对于现成的库,若用户不知道如何初始化库的一个组件,就往往会出现这一类的错误。清除是另一个特殊的问题,因为用完一个元素后,由于不再关心,所以很容易把它忘记。这样一来,那个元素占用的资源会一直保留下去,极易产生资源(主要
问题内容: 我无法按照以下代码初始化列表: 我遇到以下错误: 无法实例化类型 我该如何实例化? 问题答案: 如果你检查API,则会注意到它说: 作为一种手段,它无法实例化(不可能)。 如果你检查该链接,则会发现一些实现的: 所有已知的实施类: 那些可以实例化。使用它们的链接来了解有关它们的更多信息,即IE:知道哪个更适合你的需求。 三种最常用的可能是: 奖励: 你还可以使用,以更简单的方式使用值实