1,定义接口.方便以后创建其他集合,不用修改具体的业务代码
package com.sunsheng.collection;
public interface Collection {
// 定义一个集合的接口,有3个方法,分别是这个集合的大小,向这个集合添加元素和迭代元素
int size();
void add(Object o);
Iterator iterator();
}
package com.sunsheng.collection;
public interface Iterator {
// 定义迭代器接口,两个方法,一个是判断集合是否还有元素,另一个是返回集合的当前元素
boolean hasNext();
Object next();
}
2,LinkedList的具体实现类
package com.sunsheng.collection;
public class LinkedList implements Collection {
// 声明三个字段分别代表这个链表的大小\表头和表尾.
private int size = 0;
private Node head;
private Node end;
@Override
public int size() {
return size;
}
@Override
public void add(Object o) {
// 每添加一个新元素时就创建一个节点,节点的内容就是这个元素,下一个元素的引用时Null
Node node = new Node(o);
// 判断这个链表是否有元素,没有的话新元素既是头也是尾
if (head == null) {
head = node;
end = node;
} else {
// 如果链表