class List<T>
{
private class Node
{
private T data;
private Node next; private Node(T data)
{
if(data != null)
this.data = data;
} private void add(T data)
{
if(this.next == null)
this.next = new Node(data);
else
this.next.add(data);
} private void remove(Node previous, int index)
{
if(List.this.foot++ == index)
{
previous.next = this.next;
this.next = null;
List.this.count--;
return;
}
else
{
this.next.remove(this,index);
}
} private void remove(Node previous, T data)
{
if(this.data.equals(data))
{
previous.next = this.next;
this.next = null;
List.this.count--;
return;
} if(this.next != null)
this.next.remove(this,data);
else
return ;
} private void replace(int index, T data)
{
if(List.this.foot++ == index)
this.data = data;
else
this.next.replace(index,data);
} private void replace(T oldData, T newData)
{
if(this.data.equals(oldData))
this.data = newData;
else
this.next.replace(oldData,newData);
} private T get(int index)
{
if(List.this.foot++ == index)
return this.data;
else
return this.next.get(index);
} private boolean contains(T data)
{
if(this.data.equals(data))
return true;
if(this.next != null)
return this.next.contains(data);
else
return false;
}
} //===============================================
private Node root;
private int count;
private int foot; public List()
{} public boolean isEmpty()
{
if(this.count == && this.root == null)
return true;
else
return false;
} public int size()
{
return this.count;
} public void add(T data)
{
if(this.isEmpty())
this.root = new Node(data);
else
this.root.add(data); this.count++;
} public void remove(int index)
{
if(this.isEmpty())
return; if(index < || this.count <= index)
return; if(index == )
{
Node temp = this.root;
this.root = this.root.next;
temp.next = null;
this.count--;
return;
}
else
{
this.foot = ;
this.root.remove(this.root, index);
}
} public void remove(T data)
{
if(this.isEmpty())
return ; if(this.root.data.equals(data))
{
Node temp = this.root;
this.root = this.root.next;
temp.next = null;
this.count--;
return;
}
else
{
this.root.next.remove(this.root, data);
}
} public void replace(int index, T data)
{
if(this.isEmpty())
return; if(index < || this.count<=index)
return; this.foot = ;
this.root.replace(index,data);
} public void replace(T oldData, T newData)
{
if(this.isEmpty())
return; this.root.replace(oldData,newData);
} public T get(int index)
{
if(this.isEmpty())
return null; this.foot = ;
return this.root.get(index);
} public boolean contains(T data)
{
if(this.isEmpty())
return false; return this.root.contains(data);
} public Object[] toArray()
{
if(this.isEmpty())
return null; int count = this.count;
Object[] retVal = new Object[count];
for(int i = ; i < count; i++)
{
retVal[i] = this.get(i);
}
return retVal;
}
} public class Hello
{
public static void main(String[] args) throws Exception
{
List<String> myList = new List<String>();
myList.add("Hello");
myList.add("world");
myList.add("Ni");
myList.add("Hao");
myList.add("HeHe"); System.out.println(myList.contains(null)); Object[] result = myList.toArray(); for(Object item : result)
{
String temp = (String)item;
System.out.println(temp);
}
}
}

Java实现单向链表的增删改查的更多相关文章

  1. 关于单链表的增删改查方法的递归实现(JAVA语言实现)

    因为在学习数据结构,准备把java的集合框架底层源码,好好的过一遍,所以先按照自己的想法把单链表的类给写出来了; 写该类的目的: 1.练习递归 2.为深入理解java集合框架底层源码打好基础 学习的视 ...

  2. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  3. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  4. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  5. Java描述数据结构之链表的增删改查

    链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的"指针".在Java中的数据分为引用数据类型和基础 ...

  6. java实现单链表的增删改以及排序

    使用java代码模拟单链表的增删改以及排序功能 代码如下: package com.seizedays.linked_list; public class SingleLinkedListDemo { ...

  7. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

  8. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  9. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

随机推荐

  1. Code First 数据注释

    Code First 数据注释 Julie Lerman http://thedatafarm.com 通过实体框架 Code First,可以使用您自己的域类表示 EF 执行查询.更改跟踪和更新函数 ...

  2. 深入浅出Attribute (转载)

    原文地址:http://blog.csdn.net/FantasiaX/article/details/1627694 正文: 什么是Attribute?Attribute是干什么使的?Attribu ...

  3. unity, 非public变量需要加[SerializeField]才能序列化

    非public变量需要加[SerializeField]才能序列化 例如: MonoBehaviour中: [SerializeField] private float m_xxx; 在相应的Cust ...

  4. Oracle 11g 数据库自动备份执行脚本

    @echo offsetlocal enabledelayedexpansiontitle %date% %time:~,8% by LiaoNing Sunray Software Technolo ...

  5. Oracle中replace函数的使用

    例: select filefullname from sys_frmattachmentdb 查询的结果为: e:\GengBaoFile\TYGW\<历城区项目立项审批流程>.1079 ...

  6. CA接口测试类

    package com.creditharmony.adapter.testCase.ca; import org.junit.Test; import com.alibaba.druid.util. ...

  7. 转:在ElasticSearch之下(图解搜索的故事)

    ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我 ...

  8. R(七): R开发实例-map热力图

    第四章通过REmap包完成基于map分布图示例,前面提到REmap基于Echart2.0, 一方面在移动终端适应效果差,另一方面REmap提供的热力图仅支持全国及省市大版块map,基于上面的原因,参考 ...

  9. Hibernate3.3用户手册摘要-1-辅助类,session

    1.1.6. 启动和辅助类 是时候来加载和储存一些 Event 对象了,但首先我们得编写一些基础的代码以完成设置.我们必须启动 Hibernate,此过程包括创建一个全局的 SessoinFactor ...

  10. OpenSSL 双向认证

    在使用OpenSSL进行SSL双向认证时,需要在服务器和客户端配置如下接口函数: SSL_CTX_set_verify(SSL_CTX* ctx,int mode,int (*verify_callb ...