我有一个指定最大容量为M的ArrayList数组,我想用零值填充它来初始化这个数组。因此我使用下面的代码:
for(int i = 0; i < array.size(); i++) {
array.add(i, 0);
}
然而,这不起作用。我得到一个indexOutOfBoundsException:索引:0,大小:0
实际上,我在循环之后打印了数组,以测试它是否填充了值,但结果是一个空数组:[]。
显然,有些重要的概念我不知道。我确信解决方案很简单,但我错过了对概念的一些基本见解。
您还可以在初始化数组列表后,通过此代码将列表设置为 0 值
for (int i = 0; i < 60; i++) {
list.add(0);
}
将array.add(i,0)
更改为array.add(0);
。
除非ArrayList
的大小更大或相等,否则您无法添加到这些指定的索引,因为这些索引不存在。
此外,您还必须更改 for
循环,因为它的大小不是 100;它是 0。这是因为当你声明数组 = 新的数组列表
要使用100个零初始化ArrayList,您可以这样做:
ArrayList<Integer> list = new ArrayList<Integer>(Collections.nCopies(100, 0));
为什么我可以初始化ArrayList,如下所示: 但在使用时出错:
我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。
问题内容: 我知道您可以在实例化期间初始化数组,如下所示: 有没有办法用ArrayList做同样的事情?还是我必须单独添加内容? 问题答案: Arrays.asList可以在这里提供帮助:
问题内容: 众所周知,arraylist是init。应该是这样的 那么,为什么Java允许这些? 那么,如果它们是正确的,为什么不允许这些? 编译器消息是:ArrayList类型的方法add(int,capture#1-of?extended Object)不适用于参数(int) 更一般 我读到了这件事,但很高兴收到您的来信。谢谢 另一个有趣的地方是: 问题答案: 您不能为类型的引用分配,因为它允
我希望了解更多关于数据结构和它们的实现(在JAVA语言中)。今天我写了一个测试来比较ADT列表的不同实现(时间比较)。具体来说,我比较了add方法,下面是我的测试: 我得到了这个结果: ArrayBased:5681 LinkedList:12830 ArrayBasedInitializedSize:858
问题内容: 我在我的应用程序中使用ArrayList。 我想知道从Singleton类初始化ArrayList的确切过程。 该数据将在其他一些活动中使用。 有人可以帮助了解Singleton课堂吗? 问题答案: 这是创建单例类的方法: 任何需要调用arrayList的地方都可以: 要将元素添加到数组,请使用: 要么
考虑以下代码 VS2013编译器发出以下警告: 警告C4351:新行为:数组“B::member”的元素将默认初始化1 这里有记载 使用C 11,并应用“默认初始化”的概念,意味着B. part的元素将不会被初始化。 但我认为,成员{}应该执行值初始化,而不是默认初始化。VS2013编译器是否损坏? 8.5美元/6 默认初始化类型为T的对象意味着:-如果T是(可能是cv限定的)类类型(第9条),则