分类:
2008-12-02 18:08:38
1.数组间的拷贝问题
把一个数组的copy到另一个数组,现在有一个问题就是修改其中一个数组,另一个数组会收到影响吗?
答案是要根据你copy的方式来定!
第一种:两个变量引用同一个数组
int[][] a=new int[3][3];
int[][] b=new int[3][3];
//a初始化
b=a;
//修改a,b也相应的改变
②二维数组还有一个copy方式,不过也是引用同一个数组System.arraycopy( src,int srcPos, dest, int destPos, int length)
src - 源数组。srcPos - 源数组中的起始位置。dest - 目标数组。destPos - 目标数据中的起始位置。length - 要复制的数组元素的数量。第二种:两个变量引用不同的数组
① 一维数组System.arraycopy();
② 二维数组
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
b[i][j]=a[i][j];
}
}
2.类的引用问题
先看两个例子
Node |
int F |
setF();getF(); |
① Node temp=new Node();
ArrayList
for(int i=0;i<10;i++){
temp.setF(i);
array.add(temp);
}
② ArrayList
for(int i=0;i<10;i++){
Node temp=new Node();
temp.setF(i);
array.add(temp);
}
现在要输出array.get(i).getF()这两个输出的结果一样吗?前一个输出十个9,后一个输出0 1 2 …9
3.父指针的问题
要为一个节点 定义个一个父指针,怎么做。
定义一个父节点Node ptr; 在构造函数里ptr=null; 在设置ptr的set()get()函数。
4.ArrayList的数组排序问题(有一个节点Node类,类里有一个属性int f,现在要对ArrayList的Node.getF()进行排序)
定义一个Mycomparator 类实现Comparator接口
import java.util.*;
public class Mycomparator implements Comparator
public int compare(Object o1,Object o2) {
Node n1=(Node)o1;
Node n2=(Node)o2;
if(n1.getF()>=n2.getF())
return 1;
else
return 0;
}
}
然后
Collections.sort(open,new Mycomparator()); //对ArrayList类的open按照f的值进行排序