Thinking in java 书中一问?
古布 2004-10-23 12:18:52 如何对链表进行深度拷贝! 代码如下:
public class Snake implements Cloneable {
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
Snake s = new Snake(5, 'A');
System.out.println("s=" + s);
Snake s1 = (Snake) s.clone();
s1.increase(); //这里是一个浅拷贝!
System.out.println("s1=" + s1.toString());
}
public Snake( int n, char c ) {
ch = c;
if ( --n > 0 ) {
next = new Snake( n, (char)(c + 1) );
}
}
public String toString() {
String s = ":" + ch;
if ( next != null ) {
s += next.toString();
}
return s;
}
public Object clone() {
Object obj = null;
try {
obj = super.clone();
}catch( CloneNotSupportedException e) {
e.printStackTrace();
}
return obj;
}
public void increase() {
ch++;
if ( next != null ) {
next.increase();
}
}
private char ch;
private Snake next;
}