我有一个类和一个构造函数,用数字填充数组并对其进行排序:
public BinaryArray(int size){
data = new int[size];
for(int i:data){
data[i] = 10 + generator.nextInt(90);
}
Arrays.sort( data );
}
然后在我的另一个类中,我有主要的我要打印数组:
BinaryArray searchArray = new BinaryArray( 15 ); // create the Object
for(BinaryArray i:searchArray){
System.out.println( searchArray[i] );
}
但它的错误..我也编码这个但是它打印了......否则..
BinaryArray searchArray = new BinaryArray( 15 );
System.out.println( searchArray );
答案 0 :(得分:3)
在具有数组的类中创建一个getter方法:
public int[] getArray() {
return data;
}
然后在main方法中使用该方法:
BinaryArray searchArray = new BinaryArray(15);
for (int i : searchArray.getArray()) {
System.out.println(i);
}
修改强>
您的构造函数有一个主要错误:
for(int i:data){
data[i] = 10 + generator.nextInt(90);
}
i
将始终设置为0
,因为此数组中的每个字段都已使用0
初始化。因此,只有第一个索引将使用随机数设置。其他人将保持0。
要解决此问题,请改用此循环:
for(int i = 0; i < data.length; i++){
data[i] = 10 + generator.nextInt(90);
}
答案 1 :(得分:1)
这应该这样做。
1 - 为数组创建一个getter。
public int[] getArray() {
return data;
}
2 - 显示数组
BinaryArray searchArray = new BinaryArray( 15 ); // create the Object
for(int i:searchArray.getArray()){
System.out.println( i );
}
答案 2 :(得分:1)
首先,在上面的代码中,我总是等于0,你必须用索引
进行迭代data = new int[size];
for(int i:data){
data[i] = 10 + generator.nextInt(90);
}
您可以在toString
BinaryArray
public class BinaryArray
{
private int[] data;
public BinaryArray(int size)
{
data = new int[size];
for(int i: = 0; i < size; i++){
data[i] = 10 + generator.nextInt(90);
}
Arrays.sort( data );
}
public String toString()
{
for (int i : data)
{
System.out.println(i);
}
}
}
然后
BinaryArray searchArray = new BinaryArray( 15 );
System.out.println( searchArray );