62,623
社区成员
发帖
与我相关
我的任务
分享
/**
* 填充Item数组
* @param arr Item[]
* @param top int
*/
public void putItemArr(Item[] arr,int top) {
if(arr == null) return;
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = new Item(r, top);
}
}
/**
* 输出arr数组
* @param arr Item[]
*/
public void printItemArr(Item[] arr) {
System.out.println("**********");
if (arr != null) {
for(int i=0 ; i < arr.length; i++){
if(arr[i] != null) {
System.out.println("Arr[" + i + "] = " + arr[i]);
}
else {
System.out.println("Arr[" + i + "] was Null!");
}
}
}
System.out.println("**********");
}
class Item implements Comparable {
public int value = 0;
public void put(Random r, int top) {
value = r.nextInt(top);
}
/**
* @param v int
*/
Item(int v) {
this.value = v;
}
Item(Random r, int top) {
put(r, top);
}
public String toString() {
return Integer.toString(this.value);
}
public int compareTo(Object o) {
if (!(o instanceof Item)) {
System.out.println("Wrong Type Input");
} else if (value < ((Item) o).value) {
return -1;
} else if (value > ((Item) o).value) {
return 1;
}
return 0;
}
}
Item[] arr = new Item[3];
Vector vt;
putItemArr(arr, 30);
System.out.println("arr");
printItemArr(arr);
vt = new Vector(6,2);
for(int i=0;i < arr.length ; i++){
vt.add(arr[i]);
}
Item[] arrr = new Item[0];
Item[] arrr1 = new Item[0];
arrr = (Item[]) vt.toArray(arrr);
vt.set(0,new Item(200));
arrr1 = (Item[]) vt.toArray(arrr1);
printItemArr(arrr);
System.out.println("arrr");
printItemArr(arrr);
System.out.println("arrr1");
printItemArr(arrr1);
if(arrr == arrr1) {
System.out.println("同一指针");
}
else {
System.out.println("不同指针");
}
arrr[1].value = 100;
System.out.println("arrr");
printItemArr(arrr);
System.out.println("arrr1");
printItemArr(arrr1);
public synchronized <T> T[] toArray(T[] a) {
if (a.length < elementCount)
a = (T[])java.lang.reflect.Array.newInstance(
a.getClass().getComponentType(), elementCount);
System.arraycopy(elementData, 0, a, 0, elementCount);
if (a.length > elementCount)
a[elementCount] = null;
return a;
}
if(arrr == arrr1) {
System.out.println("同一指针");
}
else {
System.out.println("不同指针");
}
public synchronized <T> T[] toArray(T[] a) {
if (a.length < elementCount)
a = (T[])java.lang.reflect.Array.newInstance(
a.getClass().getComponentType(), elementCount);
System.arraycopy(elementData, 0, a, 0, elementCount);
if (a.length > elementCount)
a[elementCount] = null;
return a;
}
Item[] arrr = new Item[0];
Item[] arrr1 = new Item[0];
arrr = (Item[]) vt.toArray(arrr);
vt.set(0,new Item(200));
arrr1 = (Item[]) vt.toArray(arrr1);