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