当试图传递一个 int 以确定包装在对象中的数组中的数组大小时,代码不会根据 int 大小执行?
When attempting to pass an int to determine array size in an array wrapped in an object, code does not execute depending on int size?
这是我的第三个 java 课程,我们正在复习排序算法。我正在使用 Eclipse 编译和 运行 我的代码。我有一个包裹在 class 中的数组:
class ArrayBub
{
private long[] a; // ref to array a
private int nElems; // number of data items
public ArrayBub(int max) // constructor
{
a = new long[max]; // create the array
nElems = 0; // no items yet
}
public void insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
...
public void display() // displays array contents
{
for(int j=0; j<nElems; j++) // for each element,
System.out.print(a[j] + " "); // display it
System.out.println("");
}
// there are other methods not listed here
赋值是将一个至少为10000的整数传递给构造函数来创建这个大小的数组。我要观察将这么多值插入每个数组索引需要多长时间,以及对该数组进行冒泡排序需要多长时间。上面没有列出冒泡排序方法。
到目前为止我的主要方法如下所示:
class BubbleSortApp
{
public static void main(String[] args)
{
int maxSize = 10000; // array size
ArrayBub arr; // reference to array
long n = 0;
arr = new ArrayBub(maxSize); // create the array
for (int j=0; j < maxSize; j++) {
n = (long) ((java.lang.Math.random()) * (maxSize - 1) );
arr.insert(n);
}
arr.display(); // display items
System.out.print("\n Done.");
// arr.bubbleSort(); // bubble sort them
// arr.display(); // display them again
} // end main()
} // end class BubbleSortApp
我注释掉了冒泡排序和第二种显示方法,这样我就可以测试插入大量元素了。
我的问题是,当尝试将 maxSize = 10000 传递给构造函数然后执行时,数组打印输出不显示,而是只出现 "Done." 提示。我已经尝试将 maxSize 更改为较小的 int,比如 1000,这似乎有效。但是,当我尝试增加 maxSize 时,它似乎可以任意工作。对于某些值,数组显示良好,而对于其他值则不然。我遇到过相同的 maxSize 值导致数组打印输出显示在一个 运行 上而不显示在另一个上的实例。
我很困惑。它似乎与 maxSize 的值有关,但 Eclipse 没有显示任何编译或 运行 时间错误,我已经尝试将所有内容放入 try/catch 块中以清除其他任何内容。
存在未显示长行的未解决错误:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=23406
尝试用 println 替换 print 或不时插入换行符。
这是我的第三个 java 课程,我们正在复习排序算法。我正在使用 Eclipse 编译和 运行 我的代码。我有一个包裹在 class 中的数组:
class ArrayBub
{
private long[] a; // ref to array a
private int nElems; // number of data items
public ArrayBub(int max) // constructor
{
a = new long[max]; // create the array
nElems = 0; // no items yet
}
public void insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
...
public void display() // displays array contents
{
for(int j=0; j<nElems; j++) // for each element,
System.out.print(a[j] + " "); // display it
System.out.println("");
}
// there are other methods not listed here
赋值是将一个至少为10000的整数传递给构造函数来创建这个大小的数组。我要观察将这么多值插入每个数组索引需要多长时间,以及对该数组进行冒泡排序需要多长时间。上面没有列出冒泡排序方法。
到目前为止我的主要方法如下所示:
class BubbleSortApp
{
public static void main(String[] args)
{
int maxSize = 10000; // array size
ArrayBub arr; // reference to array
long n = 0;
arr = new ArrayBub(maxSize); // create the array
for (int j=0; j < maxSize; j++) {
n = (long) ((java.lang.Math.random()) * (maxSize - 1) );
arr.insert(n);
}
arr.display(); // display items
System.out.print("\n Done.");
// arr.bubbleSort(); // bubble sort them
// arr.display(); // display them again
} // end main()
} // end class BubbleSortApp
我注释掉了冒泡排序和第二种显示方法,这样我就可以测试插入大量元素了。
我的问题是,当尝试将 maxSize = 10000 传递给构造函数然后执行时,数组打印输出不显示,而是只出现 "Done." 提示。我已经尝试将 maxSize 更改为较小的 int,比如 1000,这似乎有效。但是,当我尝试增加 maxSize 时,它似乎可以任意工作。对于某些值,数组显示良好,而对于其他值则不然。我遇到过相同的 maxSize 值导致数组打印输出显示在一个 运行 上而不显示在另一个上的实例。
我很困惑。它似乎与 maxSize 的值有关,但 Eclipse 没有显示任何编译或 运行 时间错误,我已经尝试将所有内容放入 try/catch 块中以清除其他任何内容。
存在未显示长行的未解决错误:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=23406
尝试用 println 替换 print 或不时插入换行符。