标签:java数据结构 java单项链表结构 set集合底层存储结构 单项链表例子 java集合
实例代码: /** * OneWayLinked类 * 演示双向链表这一数据结构的实现 * @author 学霸联盟 - 赵灿 */ public class OneWayLinked { // 用于存储链表的第一个节点 private Node first = null; // 用于存储链表的最后一个节点 private Node last = null; // 用于存储集合长度 private int size = 0; //添加元素的方法 public void add(Object obj){ //创建节点对象 Node node = new Node(); //节点中存储添加的元素 node.element = obj; //判断第一个节点是否为null if (first == null) { //第一个节点为说明是第一次添加元素 first = node; //将第一个节点的后一个节点都设置成自己 first.next = node; } //判断最后一个节点是否为null if(last == null){ /* * 如果最后一个节点也为null时 * last和first存储的是同一个Node对象的地址 */ last = node; }else{ //如果最后一个节点不为null //新创建的节点下一个节点存储自身 node.next = node; //此时last中保存的还是上一次添加元素时的最后一个节点 //所以它的下一个节点应该设置为当前新建的节点 last.next = node; //然后将last设置为当前新建的节点 last = node; } //添加元素,长度加1 size++; } /** * 根据下标获取元素 */ public Object get(int index) { //首先判断传入的下标是否超出长度 if (index < size) { /* * 声明一个Node类型的变量tagNode,并设置为first * 表示寻找的时候从第一个节点开始找 */ Node tagNode = first; for (int i = 0; i < index; i++) { //获取下一个节点,等价于i+1 tagNode = tagNode.next; } //获取找到的节点中的元素 return tagNode.element; } //如果传入的下标大于或等于长度,返回null return null; } /** * 节点类(私有的成员内部类) * * @author 学霸联盟 - 赵灿 */ private class Node { // 自身类型的变量,用于存储后一个节点 Node next; // Object类型的变量,用于存储元素 Object element; } } /** * OneWayLinkedTest类 * 用于测试双向链表 * @author 学霸联盟 - 赵灿 */ public class OneWayLinkedTest { public static void main(String[] args) { //创建双线链表的对象 OneWayLinked twl = new OneWayLinked(); //向链表中添加值 twl.add(1); twl.add(2); twl.add(3); twl.add(4); //获取下标为2的值 Object element = twl.get(2); //输出值 System.out.println(element); } } 运行结果: 3
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:java数据结构 java单项链表结构 set集合底层存储结构 单项链表例子 java集合
原文地址:http://blog.csdn.net/ixueba/article/details/47447537