精华内容
下载资源
问答
  • 创建linkedlist
    2017-04-24 20:16:00

    链表是由若干个节点的对象组成的一种数据结构分为单链表和双链表。

    单链表:每个节点含有一个数据和下一个节点对象的引用。

    双链表:每个节点含有一个数据并含有上一个节点对象的引用和下一个节点对象的引用。

    创建链表

    使用Java.util包中的LinkedList类可以创建一个链表对象

    例如

    LinkedList mylist=new LinkedList();//创建一个空双链表

    可以使用add方法向链表依次增加节点

    例如

    mylist.add("加入的数据");

     mylist可以使用方法public Object get(index i)获取第i个节点中储存的数据。存放在节点中的数据都被看作一个Object对象。

     

    例:构造一个链表并输出节点中的数据

    import java.util.LinkedList;
    
    public class LinkListOne {
        public static void main(String[] args){
            LinkedList mylist = new LinkedList();//创建空链表
            mylist.add("a");//增加节点,第一节点
            mylist.add("b");//第二个节点
            mylist.add("c");
            mylist.add("d");
            mylist.add("e");
            int number =mylist.size();//获取节点的长度
            for(int i=0;i<number;i++){
                String temp = (String) mylist.get(i);//获取节点内数据
                System.out.println("第"+i+"节点数据:"+temp);
            }
            
        }
    
    }

    执行结果

    第0节点数据:a
    第1节点数据:b
    第2节点数据:c
    第3节点数据:d
    第4节点数据:e

     

     
     
     
    好文要顶  关注我 

    转载于:https://www.cnblogs.com/gc56-db/p/6758834.html

    更多相关内容
  • 1.LinkedList创建 //创建一个 LinkedList 链表结构 LinkedList list = new LinkedList(); 2.LinkedList 的添加操作 //追加尾部 list.add("java01"); //添加到头部 list.addFirst("java02"); //...

    1.LinkedList 的创建

    	//创建一个 LinkedList 链表结构
     	 LinkedList list = new LinkedList();
    

    2.LinkedList 的添加操作

    		//追加尾部
    		list.add("java01");
    		//添加到头部
    		list.addFirst("java02"); 
    		//添加到尾部
            list.addLast("java03");
            //添加到指定下标
            list.add(2,19);
    

    3.LinkedList 的删除操作

    		//删除指定元素
            list.remove("java");
            //删除下表为1处的元素
            list.remove(1);
            //删除头部元素
            list.removeFirst();
            //删除尾部元素
            list.removeLast();
    

    4.LinkedList 的修改操作

    ·		//将下标为1的元素修改为100
    		list.set(1,100);
            System.out.println(list);
    

    5.LinkedList 的查询操作

    		//获取链表长度
    		int size = list.size();
    		System.out.println(size);
            //判断链表是否为空
            boolean empty = list.isEmpty();
            System.out.println(empty);
    		//判断是否有指定元素
            boolean b = list.contains("java01");
            System.out.println(b);
    		//获取指定下标的元素
            Object o = list.get(1);
            System.out.println(o);
    		//获取第一个元素
            Object first = list.getFirst()
            System.out.println(first);
    		//获取最最后一个元素
            Object last = list.getLast();
            System.out.println(last);
    

    6.LinkedList 的底层代码

    				1.凡是查询源码 ,我们都是从类的构造方法入手:
    		     /**
    		     * Constructs an empty list.
    		     */
    		    public LinkedList() {
    		    }
    		 该类的构造方法内是空的,没有任何的代码。 但是该类中有三个属性。   
    		    transient int size = 0; //索引
    		   
    		    transient Node<E> first; //第一个元素对象 
    		   
    		    transient Node<E> last; //表示最后一个元素对象。
    		 
    		================ add的源码=====E:理解为Object类型==========================public boolean add(E e) {
    		        linkLast(e);
    		        return true;
    		    }
    		
    		
    		   void linkLast(E e) {
    		        final Node<E> l = last;
    		        //上一个节点   数据  下一个节点
    		        final Node<E> newNode = new Node<>(l, e, null);
    		        last = newNode;
    		        if (l == null)
    		            first = newNode;
    		        else
    		            l.next = newNode;
    		        size++;
    		        modCount++;
    		    }
    		    
    		   ==================Node的源码 内部类=======================================   
    		   private static class Node<E> { //<E>泛型--object
    		        E item; //数据
    		        Node<E> next; //下一个节点
    		        Node<E> prev; //上一个节点
    		
    		        Node(Node<E> prev, E element, Node<E> next) {
    		            this.item = element;
    		            this.next = next;
    		            this.prev = prev;
    		        }
    		    }
    		    1==================== get(1)-----获取元素========================
    			   public E get(int index) {
    			        checkElementIndex(index); //检查index下标是否正确。
    			        return node(index).item;  //李四Node对象
    			    }
    		       ========================node(index)=============================
    				 Node<E> node(int index) {
    				        //>> 位运算二进制运算 ----- size >> 1 一半的意思size/2
    				        if (index < (size >> 1)) { //前半部分
    				            Node<E> x = first; 
    				            for (int i = 0; i < index; i++)
    				                x = x.next;
    				            return x;
    				        } else {  //后半部分
    				            Node<E> x = last;
    				            for (int i = size - 1; i > index; i--)
    				                x = x.prev;
    				            return x;
    				        }
    				    }
    
    
    展开全文
  • Java-自定义LinkedList

    2022-08-11 11:58:39
    Java-自定义LinkedList

    在正式讲解怎么自定义LinkedList类之前,需要再回顾一下之前学过的一些内容,避免跟ArrayList类混淆。

    一、LinkedList和ArrayList

    --LinkedListArrayList
    联系都是List的实现类,都在java.util包下
    实现原理通过链表操作数据通过数组操作数据
    什么时候使用改查增删

    二、自定义LinkedList类(单向链表)

    1、实现思路

    LinkedList类跟ArrayList类不同,它通过指针以及结点的操作对链表进行增删改查
    自定义LinkedList类的步骤
    1、创建结点类,里面属性为Node类型的node结点、Object类型的数据
    2、创建结点类的有参和无参构造方法
    3、创建自己的LinkedList类实现List接口
    4、在LinkedList类中新建一个结点对象以及声明一个size用于表示集合中的元素
    5、实现size()get() isEmpty()的方法(与ArrayList类似)
    6、编写一个形参的add()方法
    7、编写两个形参的add()方法
    8、创建测试类对代码进行测试

    2、Node结点类

    里面有两个属性:结点和数据
    结点的类型为Node
    数据的类型为Object(因为不能够确定传入的数据具体是什么类型)
    在这里插入图片描述

    package MyLinkedList;
    
    public class Node {
        // 定义数据
        Object data;
        // 定义下一结点
        Node next;
    
        public Node(Object data, Node next) {
            this.data = data;
            this.next = next;
        }
    
        public Node() {
        }
    }
    
    

    3、size()、isEmpty()、get(int index)

    size()方法

    @Override
        public int size() {
            return size;
        }
    

    isEmpty()方法

     @Override
        public boolean isEmpty() {
            return size == 0;
        }
    

    get(int index)方法

     @Override
        public Object get(int index) {
            Node p = node;
            for (int i = 0; i < index; i++) {
                p = p.next;
            }
    
            return p.data;
        }
    

    4、add(Object o)

    将接受到的数据插入最后即可

    @Override
        public boolean add(Object o) {
            add(size, o);
            return true;
        }
    

    5、add(int index,Object element)

    在这里插入图片描述

     @Override
        public void add(int index, Object element) {
            // 找到需要插入的位置的结点
            Node p = node;
            for (int i = 0; i < index; i++) {
                p = p.next;
            }
            // 创建新结点
            Node node1 = new Node();
    
            // 将数据存入集合中
            node1.data = element;
    
            // 让node1的指针指向下一结点
            node1.next = p.next;
    
            // 确定node1的直接前驱结点
            p.next = node1;
    
            // 更新size
            size++;
        }
    

    6、test类

    循环从1开始的原因:因为在LinkedList类中最开始就创建了一个对象,如果从0开始就会看到打印结果为null

    package MyLinkedList;
    
    public class test {
        public static void main(String[] args) {
            LinkedList linkedList = new LinkedList();
            linkedList.add("111");
            linkedList.add("222");
            linkedList.add("333");
            linkedList.add("444");
            for (int i = 1; i < linkedList.size(); i++) {
                System.out.println(linkedList.get(i));
            }
            System.out.println("==================");
            linkedList.add(2,999);
            for (int i = 1; i < linkedList.size(); i++) {
                System.out.println(linkedList.get(i));
            }
    
        }
    }
    
    
    展开全文
  • 和数组一样,LinkedList 也是一种线性数据结构,但它不像数组一样在连续的位置上存储元素,而是通过引用相互链接。 LinkedList 中的每一个元素都可以称之为节点(Node),每一个节点都包含三个项目:其一是元素本身...
  • *

    b64c6dd553bb486aa66fb9e0ce60e1f7.png

    19f454bf37b14243a0dae7f62e8dc2ba.png 

    a54697acdcfb4f15895e051163136c2e.png 

     

     

    *

    da3bc930930844639bc3966873b6511e.png

    2f985d81904a43008865e5d521b9bf15.png 

    ab8d243807bb4e16971b4218bb47e41d.png 

     

    展开全文
  • LInkedList集合底层 ...1、创建一个对象 首先看到以下代码: LinkedList l=new LinkedList(); l.add("a"); l.add("b"); l.add("c"); 首先,执行LinkedList l=new LinkedList();执行到的源码如下: trans
  • 另外ArrayList和LinkedList都实现了List接⼝,但是LinkedList还额外实现了Deque接⼝,所以 LinkedList还可以当做队列来使⽤ 下面从源码角度进一步分析这两种list的具体差异: ArrayList: LinkedList: 可以看到...
  • java基础之LinkedList

    2021-10-27 10:59:51
    本文主要是java集合中LinkedList类的相关知识
  • Java LinkedList 教程

    2021-09-27 14:47:14
    本文介绍Java LinkedList数据结构。它常用于实现stack、queue,graph,另外稀疏矩阵的存储,HashMap为了防止...Iterator 和 ListIterator 迭代器是快速失败模式(即迭代器创建之后,如果list被修改了,则会抛出Concur.
  • 问题我正在研究一个稀疏矩阵类,需要才能使用一个LinkedList的数组来存储矩阵的值。阵列的每个元素(即每个LinkedList)代表矩阵的一行。并且,LinkedListarray中的每个元素表示一列和存储的值。在我的课堂上,我有一...
  • Java中对LinkedList排序的方法分享
  • LinkedList类常用方法测试 package list; import java.util.Iterator; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] srgs... //创建存放int类型的linkedList ...
  • 节点类ListNode定义和链表类LinkedList声明已给出,需实现插入节点函数、删除节点函数、创建链表函数、查找函数、打印链表函数、反转链表函数、删除链表倒数第N个节点函数、查找链表中间节点、链表升序排序函数、...
  • LinkedList的使用说明

    2021-05-04 12:15:02
    LinkedList的使用说明1. LinkedList的特点2.LinkedList的主要方法3.LinkedList的遍历3.1 使用for循环遍历3.2 使用增强的for循环遍历3.3 使用迭代器(Integor)遍历 1. LinkedList的特点 ...创建LinkedList对象 List&
  • Java LinkedList

    2022-03-13 21:25:28
    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。...与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修
  • 2、使用 [] 创建 LinkedList 集合、 二、访问集合中的元素、 1、集合赋初值、 2、使用下标访问集合元素、 ( 1 ) 正常下标、 ( 2 ) 负数下标、 ( 3 ) 正数下标但超出范围、 3、使用 IntRange 作为下标访问集合、 4、...
  • List实现类之LinkedList

    2022-05-11 15:27:29
    java实现类之LinkedList学习记录
  • 链表 用Java创建的单链接列表
  • LinkedList详解

    2022-06-17 20:41:42
    Linked + List = 链表 + 列表 = LinkedList = 链表列表与ArrayList不同,LinkedList初始化不需要创建数组,因为它是一个链表结构。而且也没有传给构造函数初始化多少个空间的入参,例如这样是不可以的,如下;但是,...
  • linkedlist_链表_

    2021-10-02 11:11:34
    单双链表的创建,节点的添加与删除,链表逆序,链表遍历。
  • 关于LinkedList集合: LinkedList实现了List接口,List接口继承Collection接口。 LinkedList集合底层原理是一个双向链表数据结构。 LinkedList集合随机增删元素比较方便,不会涉及到元素的大量移动。 但是检索/查找...
  • //LinkedList的正确创建 //调用LinkedList的方法进行操作
  • LinkedList底层实现

    2021-07-05 13:51:25
    一、什么是LinkedList public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 根据源码我们可以看出: ①...
  • 可以使用方法java.util.LinkedList.toArray()从LinkedList的元素创建对象数组。此方法以正确的顺序返回带有所有LinkedList元素的对象数组。演示该程序的程序如下。示例importjava.util.LinkedList;publicclassDemo{...
  • 项目所有者可以创建一个新的LinkedList项目,并指定希望协作者进行哪些方面,框架或工具的工作。 然后,只要项目所有者希望,其他用户就可以表达对项目职位的兴趣。 然后,所有者只需查看已签约开发人员的个人资料...
  • LinkedList

    千次阅读 2012-09-06 15:08:02
    LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList(): ——生成空的链表 2. public LinkedList(Collection col): 复制构造函数 1、...
  • /*java.util.LinkedList集合 implements List接口LinkedList集合的特点:1.底层是一个链表结构:查询慢,增删快2.里边包含了大量操作首尾元素的方法注意:使用LinkedList集合特有的方法,不能使用多态- public void ad...
  • 已知程序中创建了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是 ( A ) A.bookTypeList.contains(小说); B.bookTypeList.get(小说); C.bookTypeList
  • linkedList:这是为odin项目课程使用OOP为ruby创建的链接列表
  • Java用户定义对象的LinkedList   要在Java中对列表进行排序,可以使用sort(List&lt;T&gt; list) 方法。此方法可以对列表进行排序,其中所有元素都必须实现Comparable接口。   在下面的示例中,House...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,460
精华内容 49,384
关键字:

创建linkedlist

友情链接: filmstruts2.zip