list中的linkedlist的用法
list中的linkedlist的用法:
LinkedList是list接口的鏈表實現方式。
LinkedList類為在鏈表的開頭及結尾獲取(get)、刪除(remove)、和插入(insert)元素提供了統一的命名方法,這些操作允許將ListedList用作堆棧、隊列或雙端隊列。
此實現不是同步的。此類的iterator和listIterator方法返回的迭代器是快速失敗的:在迭代器創建之后,如果從結構上對列表進行修改,除非通過迭代器本身的remove或add方法,其他任何時間任何方式的修改,迭代器都將拋出ConcurrentModificationException。因此面對并發的修改,迭代器很快就會完全失敗,而不冒將來不確定的時間任意發生不確定行為的風險。
其構造方法有:
1、LinkedList(); ?構造一個空列表
2、LinkedList(c); 構造一個包含指定collection中的元素的列表,這些元素按其collection的迭代器返回的順序排列。
package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link1=new LinkedList();link1.addFirst("abc1");link1.addFirst("abc2");link1.addFirst("abc3");System.out.println(link1);LinkedList link2=new LinkedList();link2.addLast("abc4");link2.addLast("abc5");link2.addLast("abc6");System.out.println(link2);LinkedList link=new LinkedList(link1);link.add(link2);System.out.println(link);} }
1、添加:
package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link=new LinkedList();/** 添加元素:三種方式* 1、添加到頭部 addFirst(e);* 2、添加到尾部 addLast(e);等同于add(e);* 3、添加到指定位置 add(index,e);*/link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");link.addFirst("abc4");System.out.println(link);link.addLast("abc5");link.addLast("abc6");link.addLast("abc7");link.addLast("abc8");System.out.println(link);link.add("abc5");link.add("abc6");link.add("abc7");link.add("abc8");// 添加到下標為5,也即第六個位置link.add(5,"hello word");System.out.println(link);} } 2、刪除:
? ?remove(); ?獲取并移除此列表中的頭元素。
? ?removeFirst(); ?移除并返回此列表的第一個元素。
? ?感覺這兩個方法一樣!
? ?removeLast(); ? 移除并返回列表的最后一個元素。
? ?remove(int index); 移除此列表中指定位置處的元素。
? ?remove(Object o); ?從此列表中移除首次出現的指定元素。
package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link=new LinkedList();link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");link.addFirst("abc4");System.out.println(link);link.addLast("abc5");link.addLast("abc6");link.addLast("abc7");link.addLast("abc8");System.out.println(link);link.add("abc5");link.add("abc6");link.add("abc7");link.add("abc8");// 添加到下標為5,也即第六個位置link.add(5,"hello word");System.out.println(link);// 刪除頭元素System.out.println(link.remove());System.out.println(link);System.out.println(link.removeFirst());System.out.println(link);// 刪除最后一個元素System.out.println(link.removeLast());System.out.println(link);// 刪除指定位置的元素System.out.println(link.remove(3));System.out.println(link);// 刪除首次出現的指定元素System.out.println(link.remove("abc7"));System.out.println(link);} } 3、獲取元素:
? ?get(); ?獲取列表中指定位置處的元素。
? ?getFirst(); ?獲取列表中第一個元素。
? ?getLast(); ? 獲取列表中最后一個元素。
用法和刪除方法的用法一樣,get方法只獲取元素,并不刪除元素;而remove方法既獲取該元素,又會將該元素刪除。
4、把LinkedList當作堆棧使用時的一些常用方法:
? ?pop(); ? 從此列表所表示的堆棧處彈出一個元素。
? ?push(); ?將元素推入此列表所表示的堆棧。
? ?clear(); 從列表中移除所有元素。
package cn.list.demo;import java.util.Iterator; import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){// 創建隊列對象MyQueue myq=new MyQueue();// 給隊列中添加元素myq.myAdd("abc1");myq.myAdd("abc2");myq.myAdd("abc3");myq.myAdd("abc4");myq.myAdd("abc5");while(!myq.isNull()){System.out.println(myq.myGet());}} }
package cn.list.demo;import java.util.LinkedList;/** 自定義的一種隊列數據結構的容器。*/ public class MyQueue {private LinkedList link=null;public MyQueue(){link=new LinkedList();}/** 往隊列中添加元素*/public void myAdd(Object obj){// 調用LinkedList的方法link.addLast(obj);}/** 獲取隊列中元素的方法*/public Object myGet(){return link.removeFirst();}/** 隊列是否為空*/public boolean isNull(){return link.isEmpty();} }
總結
以上是生活随笔為你收集整理的list中的linkedlist的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云原生张羽辰:服务发现技术选型那点事
- 下一篇: 如此沙雕的代码注释,还是程序员会玩!