/*** 单链表节点类* @param <T>*/
class Node<T extends Object>{protected T value;protected Node next;
}/** * 单链表类* @param <T>*/
public class ChainList<T extends Object>{private Node<T> first;public void addTail(T t){Node<T> newNode=new Node<T>();newNode.value=t;if(first==null){                        first=newNode;}else{Node<T> curr=first;while(curr.next!=null){curr=curr.next;}curr.next=newNode;}}public void addHead(T t){Node<T> newNode=new Node<T>();newNode.value=t;newNode.next=first;first=newNode;}public int size(){int size=0;Node<T> curr=first;while(curr!=null){size++;curr=curr.next;}return size;}public T get(int index){if(index<0){throw new IllegalArgumentException("下标不能是负数");}else{Node<T> curr=first;while(curr!=null){                if(index==0){return curr.value;}index--;curr=curr.next;}throw new NullPointerException();}}public void remove(int index){if(index<0){throw new IllegalArgumentException("下标不能是负数");}else{if(index==0){Node<T> next=first.next;                first=next;}else{            Node<T> curr=first;Node<T> prev=curr;while(curr!=null){                if(index==0){prev.next=curr.next;return;}index--;prev=curr;curr=curr.next;}throw new NullPointerException();}}}public void display(){System.out.print("链表元素有");Node<T> curr=first;while(curr!=null){System.out.print(curr.value+",");curr=curr.next;}System.out.println();}public static void main(String[] args){ChainList<String> ls=new ChainList<String>();ls.addTail("A");ls.addTail("B");ls.addTail("C");ls.display();ls.addHead("1");ls.display();System.out.println("数组长度为:"+ls.size());System.out.println("第三个元素为:"+ls.get(2));for(int i=0;i<ls.size();i++){System.out.println("第"+(i+1)+"个元素为:"+ls.get(i));}ls.addTail("E");ls.addTail("F");ls.remove(0);        ls.display();ls.remove(1);        ls.display();ls.remove(ls.size()-1);        ls.display();for(int i=0;i<ls.size();i++){System.out.println("第"+(i+1)+"个元素为:"+ls.get(i));}}
}

输出:

链表元素有A,B,C,
链表元素有1,A,B,C,
数组长度为:4
第三个元素为:B
第1个元素为:1
第2个元素为:A
第3个元素为:B
第4个元素为:C
链表元素有A,B,C,E,F,
链表元素有A,C,E,F,
链表元素有A,C,E,
第1个元素为:A
第2个元素为:C
第3个元素为:E
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/3867694.html,如需转载请自行联系原作者

爪哇国新游记之十六----泛型单链表类相关推荐

  1. 爪哇国新游记之十五----泛型动态数组类

    import java.lang.reflect.Array;/*** 泛型动态数组类**/ public class DynamicArray<T extends Object>{pri ...

  2. 爪哇国新游记之十八----泛型栈类

    import java.lang.reflect.Array;/*** 泛型栈** @param <T>*/ public class Stack<T>{private Cla ...

  3. 爪哇国新游记之三十二----邮件发送

    由三个类完成任务,第一个为主,main中是用法示例. 纯邮件发送和带附件发送邮件皆可,大家请参照main函数中用法. package com.ufo.util.mail;import java.uti ...

  4. 爪哇国新游记之三十----十九个正则表达式示例

    1.重复次数匹配 代码: String[] dataArr = { "moon", "mon", "moon", "mono&qu ...

  5. 爪哇国新游记之二十六----迷宫寻路

    代码: class Position{int x;int y;public Position(int x,int y){this.x=x;this.y=y;} } // 迷宫寻路 public cla ...

  6. 爪哇国新游记之二十八----从url指定的地址下载文件到本地

    package download;import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; i ...

  7. 爪哇国新游记之二十四----二叉树

    /*** 二叉树节点类* */ class Node<T extends Comparable> {public Node(T data){this.data=data;}T data;N ...

  8. 爪哇国新游记之二十五----图及其遍历查找

    代码: import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java. ...

  9. 爪哇国新游记之二十九----访问URL获取输入流

    代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import ...

最新文章

  1. JS 实现下载Blod文件
  2. 第十一章 “她”值多少钱
  3. Node.js + Express + handlebars搭建个人网站(1)
  4. 魅族 虚拟位置服务状态:未运行_魅族17评测:「重量平衡设计」 手感出色 魅友们的5G梦想旗舰...
  5. java实时汇率的接口_汇率-免费API,收集所有免费的API
  6. 一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...
  7. [Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)
  8. 如何使用python计算2个毫秒级字符串的计算
  9. mesh 协调器 路由器_北京无线路由收发器C32MESH
  10. WeixinJSBridge API使用实例
  11. 彻底删除文件(File Delete Absolutely) 最新3.01版本 也已经在中关村在线升级成功
  12. 有关onpropertychange事件
  13. grunt打包压缩css、js方法
  14. cpe动态ip,做端口映射方案
  15. 超像素分割研究进展+SLIC近几年进展
  16. MySQL JSON_EXTRACT()、JSON_UNQUOTE() 函数获取JSON串的值
  17. php两张图片合成,php多张图片合成一张的方法及案例
  18. 大数据和人工智能属于什么专业 - 学大数据和人工智能出来做什么
  19. vue判断有没有滚动条
  20. GOTC 大会预告 | Apache Pulsar PMC 成员翟佳:Apache Pulsar 架构设计与原理

热门文章

  1. 数学四大思想八大方法_四大数学思想
  2. 一个完整简单而又强力的计算器程序--用python实现(Python3.7)
  3. 网易面试题——快速无条件分支的 RGB、HSV 互转【GLSL】
  4. 空指针异常是什么意思
  5. SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版
  6. java的concurrenthashmap和hashtab
  7. 5.1.2全景声音箱摆位_客厅影院选择7.1还是5.1.2全景声合适,天空音箱点位怎么定...
  8. 哈工大计算机网络MOOC作业题解答
  9. 笔记本处理器排名_Intel十代处理器笔记本电脑排行榜 (附带推荐机型信息20191021)...
  10. 自动生成python接口文档_Django自动生成Swagger接口文档