日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java LinkedLis t的26种使用方法

發(fā)布時(shí)間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java LinkedLis t的26种使用方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LinkedList類是雙向列表,列表中的每個(gè)節(jié)點(diǎn)都包含了對(duì)前一個(gè)和后一個(gè)元素的引用.
LinkedList的構(gòu)造函數(shù)如下
1. public LinkedList(): ?——生成空的鏈表
2. public LinkedList(Collection col): ?復(fù)制構(gòu)造函數(shù)
1、獲取鏈表的第一個(gè)和最后一個(gè)元素

view plaincopy

import?java.util.LinkedList;??

  • ??
  • public?class?LinkedListTest{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ??
  • ??
  • ????System.out.println("鏈表的第一個(gè)元素是?:?"?+?lList.getFirst());??
  • ????System.out.println("鏈表最后一個(gè)元素是?:?"?+?lList.getLast());??
  • ??}??
  • }??


2、獲取鏈表元素??

view plaincopy

for?(String?str:?lList)?{??

  • ??????System.out.println(str);??
  • ????}??

3、從鏈表生成子表

view plaincopy

List?subl?=?lList.subList(1,?4);??

  • ????System.out.println(subl);??
  • ????lst.remove(2);??
  • ????System.out.println(lst);??
  • ????System.out.println(lList);??

4、添加元素:添加單個(gè)元素
?如果不指定索引的話,元素將被添加到鏈表的最后.
public boolean add(Object element)
public boolean add(int index, Object element)
也可以把鏈表當(dāng)初棧或者隊(duì)列來(lái)處理:
public boolean addFirst(Object element)
public boolean addLast(Object element)
addLast()方法和不帶索引的add()方法實(shí)現(xiàn)的效果一樣.

view plaincopy

import?java.util.LinkedList;??

  • ??
  • public?class?LinkedListTest{??
  • ??public?static?void?main(String[]?a)?{??
  • ????LinkedList?list?=?new?LinkedList();??
  • ????list.add("A");??
  • ????list.add("B");??
  • ????list.add("C");??
  • ????list.add("D");??
  • ????list.addFirst("X");??
  • ????list.addLast("Z");??
  • ????System.out.println(list);??
  • ??}??
  • }??

5、刪除元素

view plaincopy

public?Object?removeFirst()??

  • public?Object?removeLast()??
  • import?java.util.LinkedList;??
  • ??
  • ??
  • public?class?MainClass?{??
  • ??public?static?void?main(String[]?a)?{??
  • ??
  • ??
  • ????LinkedList?list?=?new?LinkedList();??
  • ????list.add("A");??
  • ????list.add("B");??
  • ????list.add("C");??
  • ????list.add("D");??
  • ????list.removeFirst();??
  • ????list.removeLast();??
  • ????System.out.println(list);??
  • ??}??
  • }??

6、使用鏈表實(shí)現(xiàn)棧效果

view plaincopy

import?java.util.LinkedList;??

  • public?class?MainClass?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????StackL?stack?=?new?StackL();??
  • ????for?(int?i?=?0;?i?<?10;?i++)??
  • ??????stack.push(i);??
  • ????System.out.println(stack.top());??
  • ????System.out.println(stack.top());??
  • ????System.out.println(stack.pop());??
  • ????System.out.println(stack.pop());??
  • ????System.out.println(stack.pop());??
  • ??}??
  • }??
  • class?StackL?{??
  • ??private?LinkedList?list?=?new?LinkedList();??
  • ??public?void?push(Object?v)?{??
  • ????list.addFirst(v);??
  • ??}??
  • ??public?Object?top()?{??
  • ????return?list.getFirst();??
  • ??}??
  • ??public?Object?pop()?{??
  • ????return?list.removeFirst();??
  • ??}??
  • }??

7、使用鏈表來(lái)實(shí)現(xiàn)隊(duì)列效果

view plaincopy

import?java.util.LinkedList;??

  • public?class?MainClass?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????Queue?queue?=?new?Queue();??
  • ????for?(int?i?=?0;?i?<?10;?i++)??
  • ??????queue.put(Integer.toString(i));??
  • ????while?(!queue.isEmpty())??
  • ??????System.out.println(queue.get());??
  • ??}??
  • }??
  • class?Queue?{??
  • ??private?LinkedList?list?=?new?LinkedList();??
  • ??public?void?put(Object?v)?{??
  • ????list.addFirst(v);??
  • ??}??
  • ??public?Object?get()?{??
  • ????return?list.removeLast();??
  • ??}??
  • ??public?boolean?isEmpty()?{??
  • ????return?list.isEmpty();??
  • ??}??
  • }??

8、將LinkedList轉(zhuǎn)換成ArrayList

?

view plaincopy

ArrayList<String>?arrayList?=?new?ArrayList<String>(linkedList);??

  • ????for?(String?s?:?arrayList)?{??
  • ??????System.out.println("s?=?"?+?s);??
  • ????}??

?

9、刪掉所有元素:清空LinkedList
? ? lList.clear();
10、刪除列表的首位元素

view plaincopy

import?java.util.LinkedList;??

  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????System.out.println(lList);??
  • ????????//元素在刪除的時(shí)候,仍然可以獲取到元素??
  • ????Object?object?=?lList.removeFirst();??
  • ????System.out.println(object?+?"?has?been?removed");??
  • ????System.out.println(lList);??
  • ????object?=?lList.removeLast();??
  • ????System.out.println(object?+?"?has?been?removed");??
  • ????System.out.println(lList);??
  • ??}??
  • }??

11、根據(jù)范圍刪除列表元素

view plaincopy

import?java.util.LinkedList;??

  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????System.out.println(lList);??
  • ????lList.subList(2,?5).clear();??
  • ????System.out.println(lList);??
  • ??}??
  • }??

12、刪除鏈表的特定元素

view plaincopy

import?java.util.LinkedList;??

  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????System.out.println(lList);??
  • ????System.out.println(lList.remove("2"));//刪除元素值=2的元素??
  • ????System.out.println(lList);??
  • ????Object?obj?=?lList.remove(2);??//刪除第二個(gè)元素??
  • ????System.out.println(obj?+?"?已經(jīng)從鏈表刪除");??
  • ????System.out.println(lList);??
  • ??}??
  • }??

13、將LinkedList轉(zhuǎn)換為數(shù)組,數(shù)組長(zhǎng)度為0

view plaincopy

import?java.util.LinkedList;??

  • import?java.util.List;??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????List<String>?theList?=?new?LinkedList<String>();??
  • ????theList.add("A");??
  • ????theList.add("B");??
  • ????theList.add("C");??
  • ????theList.add("D");??
  • ????String[]?my?=?theList.toArray(new?String[0]);??
  • ????for?(int?i?=?0;?i?<?my.length;?i++)?{??
  • ??????System.out.println(my[i]);??
  • ????}??
  • ??}??
  • }??

14、將LinkedList轉(zhuǎn)換為數(shù)組,數(shù)組長(zhǎng)度為鏈表長(zhǎng)度

view plaincopy

import?java.util.LinkedList;??

  • import?java.util.List;??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????List<String>?theList?=?new?LinkedList<String>();??
  • ????theList.add("A");??
  • ????theList.add("B");??
  • ????theList.add("C");??
  • ????theList.add("D");??
  • ????String[]?my?=?theList.toArray(new?String[theList.size()]);??
  • ????for?(int?i?=?0;?i?<?my.length;?i++)?{??
  • ??????System.out.println(my[i]);??
  • ????}??
  • ??}??
  • }??

15、將LinkedList轉(zhuǎn)換成ArrayList

view plaincopy

import?java.util.ArrayList;??

  • import?java.util.LinkedList;??
  • import?java.util.List;??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?myQueue?=?new?LinkedList<String>();??
  • ????myQueue.add("A");??
  • ????myQueue.add("B");??
  • ????myQueue.add("C");??
  • ????myQueue.add("D");??
  • ????List<String>?myList?=?new?ArrayList<String>(myQueue);??
  • ????for?(Object?theFruit?:?myList)??
  • ??????System.out.println(theFruit);??
  • ??}??
  • }??

16、實(shí)現(xiàn)棧

view plaincopy

import?java.util.Collections;??

  • import?java.util.LinkedList;??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?argv)?throws?Exception?{??
  • ????LinkedList?stack?=?new?LinkedList();??
  • ????Object?object?=?"";??
  • ????stack.addFirst(object);??
  • ????Object?o?=?stack.getFirst();??
  • ????stack?=?(LinkedList)?Collections.synchronizedList(stack);??
  • ??}??
  • }??

17、實(shí)現(xiàn)隊(duì)列

view plaincopy

import?java.util.LinkedList;??

  • public?class?Main?{??
  • ??public?static?void?main(String[]?argv)?throws?Exception?{??
  • ????LinkedList?queue?=?new?LinkedList();??
  • ????Object?object?=?"";??
  • ????//?Add?to?end?of?queue??
  • ????queue.add(object);??
  • ????//?Get?head?of?queue??
  • ????Object?o?=?queue.removeFirst();??
  • ??}??
  • }??

18 、同步方法

view plaincopy

import?java.util.Collections;??

  • import?java.util.LinkedList;??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?argv)?throws?Exception?{??
  • ????LinkedList?queue?=?new?LinkedList();??
  • ????Object?object?=?"";??
  • ????queue.add(object);??
  • ????Object?o?=?queue.removeFirst();??
  • ????queue?=?(LinkedList)?Collections.synchronizedList(queue);??
  • ??}??
  • }??

19、查找元素位置

view plaincopy

import?java.util.LinkedList;??

  • ??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????lList.add("2");??
  • ????System.out.println(lList.indexOf("2"));??
  • ????System.out.println(lList.lastIndexOf("2"));??
  • ??}??
  • }??

20、替換元素

view plaincopy

import?java.util.LinkedList;??

  • ??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????System.out.println(lList);??
  • ????lList.set(3,?"Replaced");//使用set方法替換元素,方法的第一個(gè)參數(shù)是元素索引,后一個(gè)是替換值??
  • ????System.out.println(lList);??
  • ??}??
  • }??

21、鏈表添加對(duì)象

view plaincopy

import?java.util.LinkedList;??

  • class?Address?{??
  • ??private?String?name;??
  • ??private?String?street;??
  • ??private?String?city;??
  • ??private?String?state;??
  • ??private?String?code;??
  • ??Address(String?n,?String?s,?String?c,?String?st,?String?cd)?{??
  • ????name?=?n;??
  • ????street?=?s;??
  • ????city?=?c;??
  • ????state?=?st;??
  • ????code?=?cd;??
  • ??}??
  • ??public?String?toString()?{??
  • ????return?name?+?"?"?+?street?+?"?"?+?city?+?"?"?+?state?+?"?"?+?code;??
  • ??}??
  • }??
  • ??
  • ??
  • class?MailList?{??
  • ??public?static?void?main(String?args[])?{??
  • ????LinkedList<Address>?ml?=?new?LinkedList<Address>();??
  • ????ml.add(new?Address("A",?"11?Ave",?"U",?"IL",?"11111"));??
  • ????ml.add(new?Address("R",?"11?Lane",?"M",?"IL",?"22222"));??
  • ????ml.add(new?Address("T",?"8?St",?"C",?"IL",?"33333"));??
  • ????for?(Address?element?:?ml)??
  • ??????System.out.println(element?+?"\n");??
  • ??}??
  • }??

22、確認(rèn)鏈表是否存在特定元素

view plaincopy

import?java.util.LinkedList;??

  • ??
  • ??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?{??
  • ????LinkedList<String>?lList?=?new?LinkedList<String>();??
  • ????lList.add("1");??
  • ????lList.add("2");??
  • ????lList.add("3");??
  • ????lList.add("4");??
  • ????lList.add("5");??
  • ????if?(lList.contains("4"))?{??
  • ??????System.out.println("LinkedList?contains?4");??
  • ????}?else?{??
  • ??????System.out.println("LinkedList?does?not?contain?4");??
  • ????}??
  • ??}??
  • }??

23、根據(jù)鏈表元素生成對(duì)象數(shù)組

view plaincopy

Object[]?objArray?=?lList.toArray();??

  • for?(Object?obj:?objArray)?{??
  • ???System.out.println(obj);??
  • }??

24、鏈表多線程

view plaincopy

import?java.util.Collections;??

  • import?java.util.LinkedList;??
  • import?java.util.List;??
  • class?PrepareProduction?implements?Runnable?{??
  • ??private?final?List<String>?queue;??
  • ??PrepareProduction(List<String>?q)?{??
  • ????queue?=?q;??
  • ??}??
  • ??public?void?run()?{??
  • ????queue.add("1");??
  • ????queue.add("done");??
  • ??}??
  • }??
  • class?DoProduction?implements?Runnable?{??
  • ??private?final?List<String>?queue;??
  • ??DoProduction(List<String>?q)?{??
  • ????queue?=?q;??
  • ??}??
  • ??public?void?run()?{??
  • ????String?value?=?queue.remove(0);??
  • ????while?(!value.equals("*"))?{??
  • ??????System.out.println(value);??
  • ??????value?=?queue.remove(0);??
  • ????}??
  • ??}??
  • }??
  • public?class?Main?{??
  • ??public?static?void?main(String[]?args)?throws?Exception?{??
  • ????List?q?=?Collections.synchronizedList(new?LinkedList<String>());??
  • ????Thread?p1?=?new?Thread(new?PrepareProduction(q));??
  • ????Thread?c1?=?new?Thread(new?DoProduction(q));??
  • ????p1.start();??
  • ????c1.start();??
  • ????p1.join();??
  • ????c1.join();??
  • ??}??
  • }??

25、優(yōu)先級(jí)鏈表(來(lái)自JBOSS)

view plaincopy

import?java.util.ArrayList;??

  • import?java.util.LinkedList;??
  • import?java.util.List;??
  • import?java.util.ListIterator;??
  • import?java.util.NoSuchElementException;??
  • ??
  • ??
  • public?class?BasicPriorityLinkedList?{??
  • ??
  • ??
  • ??protected?LinkedList[]?linkedLists;??
  • ??protected?int?priorities;??
  • ??protected?int?size;??
  • ??
  • ??
  • ??public?BasicPriorityLinkedList(int?priorities)?{??
  • ????this.priorities?=?priorities;??
  • ????initDeques();??
  • ??}??
  • ??public?void?addFirst(Object?obj,?int?priority)?{??
  • ????linkedLists[priority].addFirst(obj);??
  • ????size++;??
  • ??}??
  • ??public?void?addLast(Object?obj,?int?priority)?{??
  • ????linkedLists[priority].addLast(obj);??
  • ????size++;??
  • ??}??
  • ??public?Object?removeFirst()?{??
  • ????Object?obj?=?null;??
  • ????for?(int?i?=?priorities?-?1;?i?>=?0;?i--)?{??
  • ??????LinkedList?ll?=?linkedLists[i];??
  • ??????if?(!ll.isEmpty())?{??
  • ????????obj?=?ll.removeFirst();??
  • ????????break;??
  • ??????}??
  • ????}??
  • ????if?(obj?!=?null)?{??
  • ??????size--;??
  • ????}??
  • ????return?obj;??
  • ??}??
  • ??public?Object?removeLast()?{??
  • ????Object?obj?=?null;??
  • ????for?(int?i?=?0;?i?<?priorities;?i++)?{??
  • ??????LinkedList?ll?=?linkedLists[i];??
  • ??????if?(!ll.isEmpty())?{??
  • ????????obj?=?ll.removeLast();??
  • ??????}??
  • ??????if?(obj?!=?null)?{??
  • ????????break;??
  • ??????}??
  • ????}??
  • ????if?(obj?!=?null)?{??
  • ??????size--;??
  • ????}??
  • ????return?obj;??
  • ??}??
  • ??
  • ??
  • ??public?Object?peekFirst()?{??
  • ????Object?obj?=?null;??
  • ????for?(int?i?=?priorities?-?1;?i?>=?0;?i--)?{??
  • ??????LinkedList?ll?=?linkedLists[i];??
  • ??????if?(!ll.isEmpty())?{??
  • ????????obj?=?ll.getFirst();??
  • ??????}??
  • ??????if?(obj?!=?null)?{??
  • ????????break;??
  • ??????}??
  • ????}??
  • ????return?obj;??
  • ??}??
  • ??
  • ??
  • ??public?List?getAll()?{??
  • ????List?all?=?new?ArrayList();??
  • ????for?(int?i?=?priorities?-?1;?i?>=?0;?i--)?{??
  • ??????LinkedList?deque?=?linkedLists[i];??
  • ??????all.addAll(deque);??
  • ????}??
  • ????return?all;??
  • ??}??
  • ??
  • ??
  • ??public?void?clear()?{??
  • ????initDeques();??
  • ??}??
  • ??
  • ??
  • ??public?int?size()?{??
  • ????return?size;??
  • ??}??
  • ??
  • ??
  • ??public?boolean?isEmpty()?{??
  • ????return?size?==?0;??
  • ??}??
  • ??
  • ??
  • ??public?ListIterator?iterator()?{??
  • ????return?new?PriorityLinkedListIterator(linkedLists);??
  • ??}??
  • ??
  • ??
  • ??protected?void?initDeques()?{??
  • ????linkedLists?=?new?LinkedList[priorities];??
  • ????for?(int?i?=?0;?i?<?priorities;?i++)?{??
  • ??????linkedLists[i]?=?new?LinkedList();??
  • ????}??
  • ????size?=?0;??
  • ??}??
  • ??
  • ??
  • ??class?PriorityLinkedListIterator?implements?ListIterator?{??
  • ????private?LinkedList[]?lists;??
  • ????private?int?index;??
  • ????private?ListIterator?currentIter;??
  • ????PriorityLinkedListIterator(LinkedList[]?lists)?{??
  • ??????this.lists?=?lists;??
  • ??????index?=?lists.length?-?1;??
  • ??????currentIter?=?lists[index].listIterator();??
  • ????}??
  • ??
  • ??
  • ????public?void?add(Object?arg0)?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??
  • ??
  • ????public?boolean?hasNext()?{??
  • ??????if?(currentIter.hasNext())?{??
  • ????????return?true;??
  • ??????}??
  • ??????while?(index?>=?0)?{??
  • ????????if?(index?==?0?||?currentIter.hasNext())?{??
  • ??????????break;??
  • ????????}??
  • ????????index--;??
  • ????????currentIter?=?lists[index].listIterator();??
  • ??????}??
  • ??????return?currentIter.hasNext();??
  • ????}??
  • ??
  • ??
  • ????public?boolean?hasPrevious()?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??
  • ??
  • ????public?Object?next()?{??
  • ??????if?(!hasNext())?{??
  • ????????throw?new?NoSuchElementException();??
  • ??????}??
  • ??????return?currentIter.next();??
  • ????}??
  • ??
  • ??
  • ????public?int?nextIndex()?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??
  • ??
  • ????public?Object?previous()?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??
  • ??
  • ????public?int?previousIndex()?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??
  • ??
  • ????public?void?remove()?{??
  • ??????currentIter.remove();??
  • ??????size--;??
  • ????}??
  • ??
  • ??
  • ????public?void?set(Object?obj)?{??
  • ??????throw?new?UnsupportedOperationException();??
  • ????}??
  • ??}??
  • ??
  • ??
  • }??

26、生成list的幫助類(來(lái)自google)

view plaincopy

import?java.util.ArrayList;??

  • import?java.util.Collections;??
  • import?java.util.LinkedList;??
  • import?java.util.List;??
  • public?class?Lists?{??
  • ??private?Lists()?{?}??
  • ??public?static?<E>?ArrayList<E>?newArrayList()?{??
  • ????return?new?ArrayList<E>();??
  • ??}??
  • ??public?static?<E>?ArrayList<E>?newArrayListWithCapacity(int?initialCapacity)?{??
  • ????return?new?ArrayList<E>(initialCapacity);??
  • ??}??
  • ??public?static?<E>?ArrayList<E>?newArrayList(E...?elements)?{??
  • ????ArrayList<E>?set?=?newArrayList();??
  • ????Collections.addAll(set,?elements);??
  • ????return?set;??
  • ??}??
  • ??public?static?<E>?ArrayList<E>?newArrayList(Iterable<??extends?E>?elements)?{??
  • ????ArrayList<E>?list?=?newArrayList();??
  • ????for(E?e?:?elements)?{??
  • ??????list.add(e);??
  • ????}??
  • ????return?list;??
  • ??}??
  • ??public?static?<E>?LinkedList<E>?newLinkedList()?{??
  • ????return?new?LinkedList<E>();??
  • ??}??
  • }?
  • 轉(zhuǎn)至 :http://blog.csdn.net/jdsjlzx/article/details/41654295

?

轉(zhuǎn)載于:https://www.cnblogs.com/AmbitiousMice/p/5952191.html

總結(jié)

以上是生活随笔為你收集整理的java LinkedLis t的26种使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。