LinkedList的总结

 

//单链表LinkedList的原理

class Node

{

       String data; // 存放节点数据本身

       Node next; // 存放指向下一个节点的引用

       public Node(String data)

       {

              this.data = data;

       }

}

public class NodeTest

{

       public static void main(String[] args)

       {

              Node node1 = new Node("node1");

              Node node2 = new Node("node2");

              Node node3 = new Node("node3");

              //链接链表

              node1.next = node2;

              node2.next = node3;

              System.out.println(node1.next.next.data);

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

              //在第一和第二中间,插入新链表

              Node node4 = new Node("node4");

              node1.next = node4;

              node4.next = node2;

              System.out.println(node1.next.next.next.data);

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

              //删除新链表

              node1.next = node2;

              node4.next = null;

              System.out.println(node1.next.next.data);

                    

       }

}

//双向循环链表LinkedList的原理,还有单向循环链表没有列出来,其实很简单

class Node2

{

       Node2 previous;

       String data;

       Node2 next;

       public Node2(String data)

       {

              this.data = data;

       }

}

public class Node2Test

{    

       public static void main(String[] args)

       {

              Node2 node1 = new Node2("node1");

              Node2 node2 = new Node2("node2");

              Node2 node3 = new Node2("node3");

              //链接链表

              node1.next = node2;

              node2.previous = node1;

              node2.next = node3;

              node3.previous = node2;

              node3.next = node1;

              node1.previous = node3;

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

              //插入新链表

              Node2 node4 = new Node2("node4");

              node1.next = node4;

              node4.previous = node1;

              node4.next = node2;

              node2.previous = node4;

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

              //删除新链表

              node1.next = node2;

              node2.previous = node1;

              node4.previous = null;

              node4.next = null; 

       }

}

 

//LinkedList链表的使用

import java.util.LinkedList;

public class LinkedListTest1

{    

       public static void main(String[] args)

       {

              LinkedList list = new LinkedList();

              list.add("F");

              list.add("B");

              list.add("D");

              list.add("E");

              list.add("C");

              list.addLast("Z");

              list.addFirst("A");

              list.add(1, "A2");

              System.out.println("最初的集合:" + list);

              list.remove("F");

              list.remove(2);

              System.out.println("变化之后的集合:" + list);

              Object value = list.get(2);

              list.set(2, (String)value + "changed");

              System.out.println("最后的集合:" + list);

       }

}

//用LinedList链表实现队列原理:先进先出

import java.util.LinkedList;

public class MyQueue

{

       private LinkedList list = new LinkedList();

    //插入一个对象

       public void put(Object o)

       {

              list.addLast(o);

       }

    //得到一个对象

       public Object get()

       {

              return list.removeFirst();

       }

    //判断队列是否为空

       public boolean isEmpty()

       {

              return list.isEmpty();

       }

       public static void main(String[] args)

       {

              MyQueue myQueue = new MyQueue();

              myQueue.put("one");

              myQueue.put("two");

              myQueue.put("three");

              System.out.println(myQueue.get());

              System.out.println(myQueue.get());

              System.out.println(myQueue.get());

              System.out.println(myQueue.isEmpty());

       }

 

输出结果:

one

two

three

true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值