java学习日记20230412-LinkedList
LinkedList全面说明
- LinkedList底层实现了双想链表和双端队列的特点;
- 可以添加人意元素,可重复,包括null
- 线程不安全,没有实现同步
- LinkedList维护了first和last两个属性,分别指向首节点和尾节点
- 每个节点Node对象,里面又维护了prev,next,item三个属性,其中通过prev指向前一个,通过next指向后一个节点,最终实现双向链表
- LinkedList元素的添加和删除,不是通过数组完成的,相对来说效率较高
Node示例
public class LinkedListExercise { public static void main(String[] args) { LinkedList<Object> objects = new LinkedList<>(); Node jack = new Node("jack"); Node tom = new Node("tom"); Node laohan = new Node("laohan"); Node cs = new Node("cs"); jack.next = tom; tom.next = cs; laohan.pre = cs; cs.next=laohan; cs.pre=tom; tom.pre = jack; Node first = jack; Node last = laohan; while(true){ if(first == null){break;} System.out.println(first); first = first.next; } } } //模拟node节点 class Node{ public Object item; public Node next; public Node pre; public Node(Object item) { this.item = item;; } @Override public String toString() { return "Node{" + "item=" + item + '}'; } }
-
public class LinkedListCRUD { public static void main(String[] args) { //初始化 LinkedList<Object> objects = new LinkedList<>(); objects.add(1); objects.add(2); objects.add(3); System.out.println(objects); objects.remove(); System.out.println(objects); //修改 objects.set(1,4); System.out.println(objects); //获取 System.out.println(objects.get(1)); //迭代器循环 Iterator iterator =objects.listIterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } //增强for循环 for (Object o :objects) { System.out.println(o); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)