Java 使用sort和shuffle方法生成动态数组,这两种方法都不能正常工作
对于Java类,我们必须创建一个动态数组。无法使用arraylist 这里是我定义类的地方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
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;
}