registerlinkedlist.java

来自「高质量Java程序设计 源代码」· Java 代码 · 共 49 行

JAVA
49
字号
package net.betterjava.design.collection.shadowcopy;
import java.util.Iterator;
import java.util.LinkedList;

public class RegisterLinkedList implements Cloneable {
	private LinkedList visitors;

	public RegisterLinkedList() {
		visitors = new LinkedList();
	}

	public RegisterLinkedList(LinkedList para) {
		visitors = para;
	}

	public void add(Visitor v) {
		visitors.add(v);
	}

	public Object clone() {
		return new RegisterLinkedList((LinkedList) visitors.clone());
	}

	public void amendFirstAddress(String newAddress) {
		((Visitor) visitors.get(0)).setAddress(newAddress);
	}

	public String toString() {
		StringBuffer temp = new StringBuffer();
		Iterator it = visitors.iterator();
		while (it.hasNext()) {
			Visitor v = (Visitor) it.next();
			temp.append(v.getName()).append(":").append(v.getAddress()).append("\n");
		}
		return temp.toString();
	}

	public static void main(String[] args) {
		RegisterLinkedList r = new RegisterLinkedList();
		r.add(new Visitor("Alex", "Fa Hua Zhen Road"));
		r.add(new Visitor("Field", "Xiao Mu Qiao Road"));
		System.out.println(r);

		RegisterLinkedList copy = (RegisterLinkedList) r.clone();
		copy.amendFirstAddress("Fan Yu Road");
		System.out.println(r);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?