我遇到了一个名为arrayList的类,该类表示一个对象列表,并支持通过数字位置索引对其对象的随机访问。
当逻辑大小为0时,toString方法应构建并返回一个字符串,该字符串包含数组中当前可访问对象的字符串表示形式。字符串为空。
我使用测试器类来调用arrayList类。
public class Tester {
public static void main(String [] args) {
arrayList a1, a2;
a1 = new arrayList();
a2 = new arrayList(5);
a2.size();
System.out.println(a1.toString());
//System.out.println(a2.toString());
}
}
public class arrayList {
private int logicalSize;
private static Object[] array = new Object[0];
private Object[] original;
private Object removedElement;
public arrayList() {
Object[] array = new Object[]{null,null,null,null,null};
}
public arrayList(int i) {
logicalSize = i;
Object[] array = new Object[logicalSize - 1];
}
public arrayList(Object[] array) {
logicalSize = array.length;
Object[] copyArray = array;
}
@Override
public String toString(Object[] array) {
String str = " ";
for(int a = 0; a < logicalSize; a++) {
str = str + array[a];
}
str = str + "\nSize: " + size();
return str;
}
public int size() {
int length = array.length;
return length;
}
}
当上面的代码运行时,我得到“ arrayList @(memmorylocation)”。
我仅使用一维数组(其他用于后面的部分),并尝试了各种方法来获取它以打印除位置以外的任何内容,包括删除应该从toString中打印出值的循环,然后执行以下操作:
System.out.println(a1);
代替:
System.out.println(a1.toString());
但无论我进行什么更改,我仍然会打印出它的位置,而不是它的价值。
如何打印值而不是位置?我正在使用BlueJ IDE。
因为您调用的是默认方法,toString
而不是您定义的方法。
System.out.println(a1.toString());
您的方法应该接收一个数组作为参数:
public String toString(Object[] array)
因此请传入一个数组,或正确覆盖该toString()
方法。请注意,使用@Override
注释会告诉您您没有覆盖该方法,这可能会使您避免这种误解。
顺便说一句,按照约定,java类应该以大写字母开头。因此,按照约定,您应该为ArrayList
已经存在的类命名java.util
(您可能知道)。您应该为更合适的名称更改班级名称。
此语法令人讨厌:
Object[] array = new Object[]{null,null,null,null,null};
您想改为:
Object[] array = new Object[5];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句