链表中往往会保存大量的数据内容,同时链表的本质有相当于一个数组,那么为了可以准确的获取数据的个数,就需要在链表中进行数据的统计操作。
1、【ILink】在接口中定义一个size()方法用于返回数据保存的个数
/**
* 获取链表中集合元素的保存个数
* @return 元素个数
*/
public int size();
2、【Link】在子类中定义一个新的成员属性用于进行元素个数的统计
private int count; //保存元素个数
3、【Link】在元素保存成功时可以进行count属性的自增处理,修改add()方法。
@Override
public void add(E e) { //方法覆写
if(e==null) { //保存的数据为空时
return; //方法调用直接结束
}
//数据本身不具有节点先后的关联特性,要想实现关联处理就必须将数据包装在Node类中
Node<E> newNode=new Node<E>(e); //创建一个新的节点
if(this.root==null) { //现在没有根节点
this.root =newNode; //第一个节点作为根节点
}else { //根节点存在
this.root .addNode(newNode); //有Node类保存新节点
}
this.count++; //保存元素个数自增
}
4、【Link】在Link子类中覆写size()方法,返回count成员属性
@Override
public int size() {
return this.count; //返回元素个数
}
5、【测试类】在主类中调用size()方法
public class LinkDome277 {
public static void main(String[] args) {
ILink<String> link=new Link<String>(); //实例化链表对象
System.out.println("数据保存前链表元素个数"+link.size());
link.add("www.链表数据增加.com"); //链表中保存数据
link.add("www.kkk.cm"); //链表中保存数据
link.add("www.lll.cn"); //链表中保存数据
System.out.println("数据保存后链表元素个数"+link.size());
}
}
执行结果
数据保存前链表元素个数0
数据保存后链表元素个数3
本程序在进行链表数据保存前后分别进行了数据个数的统计。