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. ASP.NET MVC报错: Multiple types were found that match the controller named

    当使用ASP.NET MVC的Area功能时,出现了这样的错误: Multiple types were found that match the controller named 'Home'. T ...

  2. tomcat-8.0

    https://tomcat.apache.org/tomcat-8.0-doc/introduction.html

  3. 【转】ASP.NET Cookies简单应用 记住用户名和密码

    不要试图给Password类型的TextBox赋值! 在asp.net中,不要试图给Password类型的TextBox控件赋值! 无论是在设计或是运行时,都不可以的. 猜测的原因是,password ...

  4. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  5. 200多个js技巧代码

    1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 & ...

  6. mysql log

    mysql binlog3种格式,row,mixed,statement. 解析工作 mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.0001 ...

  7. Presto架构及原理

    Presto 是 Facebook 推出的一个基于Java开发的大数据分布式 SQL 查询引擎,可对从数 G 到数 P 的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 ...

  8. TTL电平和CMOS电平总结

    TTL电平和CMOS电平总结 1,TTL电平:          输出高电平>2.4V,输出低电平<0.4V.在室温下,一般输出高电平是3.5V,输出低电平是0.2V.最小输入高电平和低电 ...

  9. 调用Newtonsoft.Json 报FileNotFoundException 错误

    具体如下: Exception StackTrace at Newtonsoft.Json.Converters.BinaryConverter.CanConvert(Type objectType) ...

  10. (转)颜色渐变CSS

    本文转载自:http://www.cnblogs.com/yichengbo/archive/2012/10/27/2742618.html IE系列 filter: progid:DXImageTr ...