Java 集合学习<5>LinkList

来源:互联网 发布:免费听英语的软件 编辑:程序博客网 时间:2024/05/22 17:20
package cn.iworker.collection;import java.util.LinkedList;/** * @desc <pre> * LinkList的底层是一个双向链表Entry<E> * ArrayList 和LinkList 区别: * 1.ArrayList 底层用数组实现,LinkList底层是双向链表 * 2.当执行插入删除操作时:LinkList效率相对高。 * 3.当进行搜索操作时:Arraylist效率相对高。 * </pre> * @author Weiliang Hu * @Date 2013-10-28 */public class LinkListStudy{public static void main(String[] args){testLinkList();testSingleNodeLinkList();}/* * LinkList的简单操作 */public static void testLinkList(){LinkedList<Object> mLinkedList = new LinkedList<Object>();mLinkedList.add("a");mLinkedList.add("b");mLinkedList.add("c");mLinkedList.add("d");System.out.println(mLinkedList.toString());// [a, b, c, d]mLinkedList.addFirst("A");mLinkedList.addLast("Z");System.out.println(mLinkedList.toString());// [A, a, b, c, d, Z]mLinkedList.add(1, "G");System.out.println(mLinkedList.toString());// [A, G, a, b, c, d, Z]mLinkedList.remove(2);System.out.println(mLinkedList.toString());// [A, G, b, c, d, Z]mLinkedList.remove(3);System.out.println(mLinkedList.toString());// [A, G, b, d, Z]}/* * 单向链表 */public static void testSingleNodeLinkList(){Node mNode1 = new Node("1");Node mNode2 = new Node("2");Node mNode3 = new Node("3");Node mNode4 = new Node("4");mNode1.mNode = mNode2;mNode2.mNode = mNode3;System.out.println(mNode1.mNode.mNode.mName);// 从mNode1中过去Node3中的name;System.out.println("------------------------------------------------");mNode1.mNode = mNode4;mNode4.mNode = mNode2;System.out.println(mNode1.mNode.mNode.mName);System.out.println("------------------------------------------------");mNode1.mNode = mNode2;mNode4.mNode = null;System.out.println("------------------------------------------------");}    /*     * 双向链表      */public static void testDoubleNodeLinkList(){/* * DoubleNode1,DoubleNode2,DoubleNode3形成双向链表 */     DoubleNode DoubleNode1=new DoubleNode("DoubleNode1");     DoubleNode DoubleNode2=new DoubleNode("DoubleNode2");     DoubleNode DoubleNode3=new DoubleNode("DoubleNode3");     DoubleNode DoubleNode4=new DoubleNode("DoubleNode4");     DoubleNode1.mDoubleNodeEnd=DoubleNode2;     DoubleNode1.mDoubleNodeStart=DoubleNode3;          DoubleNode2.mDoubleNodeEnd=DoubleNode3;     DoubleNode2.mDoubleNodeStart=DoubleNode1;               DoubleNode3.mDoubleNodeEnd=DoubleNode1;     DoubleNode3.mDoubleNodeStart=DoubleNode2;               /*      * DoubleNode4 插入到1,2中间      */     DoubleNode4.mDoubleNodeStart=DoubleNode1;     DoubleNode4.mDoubleNodeEnd=DoubleNode2;     DoubleNode1.mDoubleNodeEnd=DoubleNode4;     DoubleNode2.mDoubleNodeStart=DoubleNode4;     /*      * 删除DoubleNode4      */     DoubleNode1.mDoubleNodeEnd=DoubleNode2;     DoubleNode2.mDoubleNodeStart=DoubleNode1;     DoubleNode4.mDoubleNodeStart=null;     DoubleNode4.mDoubleNodeEnd=null;}}
package cn.iworker.collection;public class Node {String mName;Node mNode;public Node(String mName){this.mName=mName;}}


原创粉丝点击