Java 使用sort和shuffle方法生成动态数组,这两种方法都不能正常工作

Java 使用sort和shuffle方法生成动态数组,这两种方法都不能正常工作,java,arrays,Java,Arrays,对于Java类,我们必须创建一个动态数组。无法使用arraylist 这里是我定义类的地方 public class DynamicArray { private int array[]; private int size; 以下是所谓的构造函数: /** * DynamicArray copies the array * @param obj */ public DynamicArray(DynamicArray obj) { array = obj

对于Java类,我们必须创建一个动态数组。无法使用arraylist

这里是我定义类的地方

public class DynamicArray {

    private int array[];
    private int size;
以下是所谓的构造函数:

/**
 * DynamicArray     copies the array
 * @param obj 
 */
public DynamicArray(DynamicArray obj) {
    array = obj.toArray();
    size = obj.getSize();
}
在main方法下,我在这里创建新的array对象,并尝试排序和洗牌(以及其他一些方法,但这些方法正在工作):

toArray方法如下所示:

/**
 * toArray      accessor returns the array
 * @return 
 */
public int[] toArray() {
    int arrayCopy[] = new int[array.length];
    for (int i = 0; i < array.length; i++) {
        arrayCopy[i] = array[i];
    }

    return arrayCopy;
}
下面是getSize()


你能提供array2是如何实例化的吗?这是算法的起点

getSize()实现也很有用

现在,您可以在此处检查排序算法: e、 气泡排序很容易理解和实现

对于洗牌实施,您可以检查:

/**
 * toArray      accessor returns the array
 * @return 
 */
public int[] toArray() {
    int arrayCopy[] = new int[array.length];
    for (int i = 0; i < array.length; i++) {
        arrayCopy[i] = array[i];
    }

    return arrayCopy;
}
/**
 * isEmpty      returns size = 0 is array is empty
 * @return 0 if empty
 */

public boolean isEmpty() {
    return size == 0;
}

/**
 * sort     sorts the numbers in the array
 */

public void sort(int [] array) {
    int lastPos;
    int index;
    int newNum;

    for (lastPos = array.length - 1; lastPos >= 0; lastPos--) {
        for (index = 0; index <= lastPos - 1; index++) {
            if (array[index] > array[index + 1]) {
                newNum = array[index];
                array[index] = array[index + 1];
                array[index + 1] = newNum;
            }
        }
    }
}

/**
 * shuffle      shuffles the array
 */
 public void shuffle() {
    Random r = new Random();
    for (int i = array.length - 1; i > 0; i--) {
        int index = r.nextInt(i);
        int tmp = array[i];
        array[i] = array[index];
        array[index] = tmp;
    }
}
       /**
        * Calling constructor with parameter
        * also calling push to add items to the array
        */

       DynamicArray array2 = new DynamicArray(5);
       array2.push(4);
       array2.push(10);
       array2.push(15);
       array2.push(18);
       array2.push(2);
       array2.push(25);
       System.out.println("Size is: " + array2.getSize());
       array2.push(20);
       System.out.println("Size is: " + array2.getSize());
       System.out.println(array2);
/**
 * getSize     gets size of the array
 * @return size
 */
public int getSize() {
    return size;
}