首页 > 其他分享 >LinkedList类

LinkedList类

时间:2023-02-21 17:11:45浏览次数:28  
标签:LinkedList list System println zhangsan out

LinkedList底层使用数组存储数据,数据结构是链表

链表相较于数组的优点:添加和删除时更加便捷,改变指针指向就行,不需要挪动位置
缺点:内存空间占用更大

添加数据add

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        System.out.println(list);//[zhangsan]
        System.out.println(list.getFirst());//zhangsan
        System.out.println(list.getLast());//zhangsan
    }
}

添加第二个数据

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        System.out.println(list);//[zhangsan]

//        list.add("lisi");//默认在后面加
//        System.out.println(list);//[zhangsan, lisi]
        list.addFirst("lisi");//在前面加
        System.out.println(list);//[lisi, zhangsan]
        System.out.println(list.getFirst());//lisi
        System.out.println(list.getLast());//zhangsan
    }
}

添加第三个数据

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        list.addFirst("lisi");//在前面加
//        list.addFirst("wangwu");//在最前面加
//        System.out.println(list);//[wangwu, lisi, zhangsan]
        list.add(1,"wangwu");//根据索引添加
        System.out.println(list);//[lisi, wangwu, zhangsan]
        System.out.println(list.getFirst());//lisi
        System.out.println(list.getLast());//zhangsan
    }
}


添加前后的索引变化,链表是没有索引的,java会根据数据的位置来构建索引


还有addAll,和ArrayList一样

获取数据get

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        list.addFirst("lisi");//在前面加
        list.add(1,"wangwu");//根据索引添加
        System.out.println(list);//[lisi, wangwu, zhangsan]
        System.out.println(list.get(1));//根据索引获取数据,wangwu
        System.out.println(list.getFirst());//获取第一个数据,lisi
        System.out.println(list.getLast());//获取最后一个数据,zhangsan
        //遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("---------------------------------");
        for (Object obj:list ){
            System.out.println(obj);
        }
    }
}

修改set

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        list.addFirst("lisi");//在前面加
        list.add(1,"wangwu");//根据索引添加
        System.out.println(list);//[lisi, wangwu, zhangsan]
        list.set(1,"zhaoliu");
        System.out.println(list);//[lisi, zhaoliu, zhangsan]
    }
}

删除remove

package List;

import java.util.LinkedList;

public class linkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add("zhangsan");
        list.addFirst("lisi");//在前面加
        list.add(1,"wangwu");//根据索引添加
        System.out.println(list);//[lisi, wangwu, zhangsan]
        list.remove("wangwu");
        System.out.println(list);//[lisi, zhangsan]
    }
}

list.remove()和list.removeFirst都是删除第一个数据

其他方法


push和addFirst一样都是在第一个位置添加数据
pop和removeFirst一样都是在第一个位置删除数据

标签:LinkedList,list,System,println,zhangsan,out
From: https://www.cnblogs.com/ben10044/p/17141676.html

相关文章

  • LinkedList
    LinkedListLinkerList使用的是双向链表,其基本的增删改查如下:增加示例代码如下:List<Object>list=newLinkedList<>();list.add(Objecte); //默认创建一个结点添加元......
  • LinkedList的使用
    importjava.util.Iterator;importjava.util.LinkedList;importjava.util.ListIterator;publicclassDemo01{publicstaticvoidmain(String[]args){......
  • LinkedList
    LinkedList是基于双向循环链表实现的,除了可以当作链表操作外,它还可以当作栈、队列和双端队列来使用;LinkedList是非线程安全的,只在单线程下适合使用;LinkedList的底层是通......
  • java LinkedList集合特有功能
    javaLinkedList集合特有功能       ......
  • java: 小王子单链表 ------ ( LinkedList )
    java.util包中的LinkedList<E>泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象。LinkedList<String>myList=newLinkedList<String>(......
  • LinkedList
    说明:底层实现了双向链表和双端队列特点可以添加重复元素,包括null线程不安全,没有实现同步LinkedList的底层操作机制:LinkedList底层维护了一个双向链表LinkedList中......
  • JDK 1.8 LinkedList 关键代码分析 重要属性和add
       /**   *有序(输入有序),不唯一    *底层实现是双向链表   *易修改,不易查询    */publicclassLinkedList<E>   extendsAbstractSequenti......
  • ArrayList和LinkedList的区别
    ArrayList:基于动态数组。连续内存存储,适合下标访问(随机访问)。扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,将老数组数据拷贝到新数组,如果不是尾部插入数据还会涉......
  • Java集合之LinkedList源码分析
    LinkedList文章目录​​LinkedList​​​​LinkedList介绍​​​​LinkedList的方法总结​​​​LinkedList源码分析​​​​GetElement​​​​RemoveElement​​​​......
  • 比较ArrayList与LinkedList
    比较ArrayList与LinkedList底层实现ArrayList是数组-顺序表LinkedList是双向链表增加第一条数据时LinkedList的更快因为ArrayList默认初始化时创建容量为10的数组空......