模拟集合的实现——链式集合
先整个接口,定义一些集合的通用方法,集合类都实现此接口
package com.zgy.set;
/**
* 定义一个集合接口,定义一些集合的通用方法
*
*/
public interface Set {
public boolean add(Object obj);
public boolean remove(Object obj);
public boolean contains(Object obj);
public Object value(int i);
public Object find(Object obj);
public int size();
public boolean isEmpty();
public void output();
public Set union(Set set);
public Set intersection(Set set);
public void clear();
}
package com.zgy.set;
/**
* 集合中单个节点类
*
*/
public class Node {
private Object element;// 当前节点的值
private Node next;// 当前节点保存的下一个节点指针域
public Node(Node nt) {// 构造方法
next = nt;
}
public Node(Object obj, Node nt) {// 构造方法
element = obj;
next = nt;
}
public Object getElement() {
return element;
}
public void setElement(Object element) {
this.element = element;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
package com.zgy.set;
/**
* 集合的链式存储
*
*/
public class LinkSet implements Set {
private Node head;// 表头指针,指向第一个节点
private int len;// 链式集合长度
public LinkSet() {// 无参的构造函数
len = 0;// 初始长度为0
head = new Node(null);// head指向的头结点为null,表示初