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); } } }

浙公网安备 33010602011771号