Java 我是否需要使用引用变量?(链接列表)
我需要填充一个对象数组 这是我的代码:Java 我是否需要使用引用变量?(链接列表),java,Java,我需要填充一个对象数组 这是我的代码: final class ObjectClass { List<ObjectClass> array; private int data; ObjectClass(int data) { this.data = data; } public void fillArray() { array = new LinkedList<>(); f
final class ObjectClass
{
List<ObjectClass> array;
private int data;
ObjectClass(int data)
{
this.data = data;
}
public void fillArray() {
array = new LinkedList<>();
for(int i = 0;i < array.size();i++)
{
data++;
array.add(new ObjectClass(data));
}
}
}
将
列表数组
声明为静态
,它将通过创建一个类变量
,而不是在对象级别将列表数组
声明为静态
,来实现您想要实现的目标,通过创建一个类变量
而不是在对象级别它将实现您试图实现的目标。问题是数组
(顺便说一句,它实际上不是一个数组-它被错误命名)最初的大小为0,因此该方法不做任何事情
<>您忘记考虑要用“.p/>> p>”填充多少数据。问题是
<>你忘记考虑要用“填充”数据结构的数量了。 < p>为什么没有发生什么,这里是:
for(int i = 0;i < array.size();i++)
for(int i=0;i
在前面的行中,您刚刚创建了
数组,因此它仍然是空的-因此,循环体根本没有执行。没有发生任何事情的原因如下:
for(int i = 0;i < array.size();i++)
for(int i=0;i
在前面的一行中,您刚刚创建了数组,因此它仍然是空的-因此,循环体根本不会执行。每次调用fillArray
,您都在使用以下命令销毁数组中的数据(不管它是如何进入的):
array = new LinkedList<>();
最后,请注意,如果循环确实起作用,data
和array.size()
将是等效的(只要不删除任何内容)。我会重新考虑该变量的用途/意图。每次调用fillArray
,您都会使用以下命令销毁数组中的数据(不管它是如何进入的):
array = new LinkedList<>();
最后,请注意,如果循环确实起作用,data
和array.size()
将是等效的(只要不删除任何内容)。我会重新思考这个变量的目的/意图。你说“没有结果”是什么意思?你试过什么?具体发生了什么?我正在尝试制作一个ObjectClass数组并打印它的对象。你说“没有结果”是什么意思?你试过什么?具体发生了什么?我正在尝试制作一个ObjectClass数组并打印它的对象。啊哈,是的,是的,没有注意到。谢谢啊,对,对,没有注意到。谢谢谢谢,我正在努力!谢谢,我正在努力!
public void fillArray(int times) {
for(int i = 0;i < times; i++) {
data++;
array.add(new ObjectClass(data));
}
}