java链表代码,java链表的基本使用 代码

package test;

interface ILink{

public void add(E e);//添加链表数据

public int size();//返回链表长度

public boolean isEmpty();//判断链表是否为空

public Object [] toArray();//返回集合数据

public E get(int index);//返回指定索引的数据

public void set(int index,E data);//修改值

public boolean contains(E data);//判断指定数据是否存在

}

class LinkImpl implements ILink{

private class Node{//保存节点的数据关系

private E data;

private Node next;//保存下一个引用

private Node(E data) {

this.data=data;

}

//第一次调用

public void addNode(Node newNode) {

//保存新的Node数据

if(this.next==null) {

this.next =newNode;

}else {

this.next.addNode(newNode);

}

}

public void toArrayNode() {

LinkImpl.this.returnData [LinkImpl.this.foot ++]=this.data;

if(this.next!=null) {

this.next.toArrayNode();

}

}

public E getNode(int index) {

if(LinkImpl.this.foot ++ ==index) {

return this.data;

}

else {

return this.next.getNode(index);

}

}

public void setNode(int index,E data) {

if(LinkImpl.this.foot ++ ==index) {

this.data=data;

}

else {

this.next.getNode(index);

}

}

public boolean containsNode(E data) {

if(this.data.equals(data)) {

return true;

}

else{

if(this.next==null) {

return false;

}else {

return this.next.containsNode(data);

}

}

}

}

private Node root;

//增加数据

private int count;

private int foot;

private Object[] returnData;

public void add(E e) {

if(e==null) {

return ;

}else {

Node newNode = new Node(e);//创建新节点

if(this.root==null) {

this.root=newNode;

}

else {

this.root.addNode(newNode);

}

this.count++;

}

}

@Override

public int size() {

// TODO Auto-generated method stub

return this.count;

}

@Override

public boolean isEmpty() {

//this.count==0

return this.root==null;

}

@Override

public Object[] toArray() {

if(this.isEmpty()) {

return null;

}

this.foot=0;

this.returnData=new Object[this.count];

this.root.toArrayNode();

return this.returnData;

}

@Override

public E get(int index) {

if(index>this.count) {

return null;

}

this.foot=0;

return this.root.getNode(index);

}

@Override

public void set(int index, E data) {

if(index>=this.count) {

return ;

}

this.foot=0;

this.root.setNode(index, data);

}

@Override

public boolean contains(E data) {

if(data==null) {

return false;

}

return this.root.containsNode(data);

}

}

public class Test1 {

public static void main(String[] args) throws Exception {

LinkImpl all = new LinkImpl();

System.out.println("size:"+all.size());

all.add("hello");

all.add("wo");

System.out.println("-------------");

System.out.println("size:"+all.size());

Object [] array = all.toArray();

for(Object obj:array) {

System.out.print(obj);

}

System.out.println("数据获取");

System.out.println(all.get(1));

System.out.println(all.contains("wo"));

System.out.println(all.contains("women"));

}

}

标签:index,return,int,代码,next,链表,java,data,public

来源: https://www.cnblogs.com/yxj808/p/12644306.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值