LinkedList基本用法.docx
- 文档编号:7648642
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:14
- 大小:18.13KB
LinkedList基本用法.docx
《LinkedList基本用法.docx》由会员分享,可在线阅读,更多相关《LinkedList基本用法.docx(14页珍藏版)》请在冰豆网上搜索。
LinkedList基本用法
LinkedList基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.
LinkedList的构造函数如下
1.publicLinkedList():
——生成空的链表
2.publicLinkedList(Collectioncol):
复制构造函数
1、获取链表的第一个和最后一个元素
[java] viewplaincopy
1.import java.util.LinkedList;
2.
3.public class LinkedListTest{
4. public static void main(String[] args) {
5. LinkedList
6. lList.add("1");
7. lList.add("2");
8. lList.add("3");
9. lList.add("4");
10. lList.add("5");
11.
12.
13. System.out.println("链表的第一个元素是 :
" + lList.getFirst());
14. System.out.println("链表最后一个元素是 :
" + lList.getLast());
15. }
16.}
2、获取链表元素
[java] viewplaincopy
1.for (String str:
lList) {
2. System.out.println(str);
3. }
3、从链表生成子表
[java] viewplaincopy
1.List subl = lList.subList(1, 4);
2. System.out.println(subl);
3. lst.remove
(2);
4. System.out.println(lst);
5. System.out.println(lList);
4、添加元素:
添加单个元素
如果不指定索引的话,元素将被添加到链表的最后.
publicbooleanadd(Objectelement)
publicbooleanadd(intindex,Objectelement)
也可以把链表当初栈或者队列来处理:
publicbooleanaddFirst(Objectelement)
publicbooleanaddLast(Objectelement)
addLast()方法和不带索引的add()方法实现的效果一样.
[java] viewplaincopy
1.import java.util.LinkedList;
2.
3.public class LinkedListTest{
4. public static void main(String[] a) {
5. LinkedList list = new LinkedList();
6. list.add("A");
7. list.add("B");
8. list.add("C");
9. list.add("D");
10. list.addFirst("X");
11. list.addLast("Z");
12. System.out.println(list);
13. }
14.}
5、删除元素
[java] viewplaincopy
1.public Object removeFirst()
2.public Object removeLast()
3.import java.util.LinkedList;
4.
5.
6.public class MainClass {
7. public static void main(String[] a) {
8.
9.
10. LinkedList list = new LinkedList();
11. list.add("A");
12. list.add("B");
13. list.add("C");
14. list.add("D");
15. list.removeFirst();
16. list.removeLast();
17. System.out.println(list);
18. }
19.}
6、使用链表实现栈效果
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class MainClass {
3. public static void main(String[] args) {
4. StackL stack = new StackL();
5. for (int i = 0; i < 10; i++)
6. stack.push(i);
7. System.out.println(stack.top());
8. System.out.println(stack.top());
9. System.out.println(stack.pop());
10. System.out.println(stack.pop());
11. System.out.println(stack.pop());
12. }
13.}
14.class StackL {
15. private LinkedList list = new LinkedList();
16. public void push(Object v) {
17. list.addFirst(v);
18. }
19. public Object top() {
20. return list.getFirst();
21. }
22. public Object pop() {
23. return list.removeFirst();
24. }
25.}
7、使用链表来实现队列效果
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class MainClass {
3. public static void main(String[] args) {
4. Queue queue = new Queue();
5. for (int i = 0; i < 10; i++)
6. queue.put(Integer.toString(i));
7. while (!
queue.isEmpty())
8. System.out.println(queue.get());
9. }
10.}
11.class Queue {
12. private LinkedList list = new LinkedList();
13. public void put(Object v) {
14. list.addFirst(v);
15. }
16. public Object get() {
17. return list.removeLast();
18. }
19. public boolean isEmpty() {
20. return list.isEmpty();
21. }
22.}
8、将LinkedList转换成ArrayList
[java] viewplaincopy
1.ArrayList
2. for (String s :
arrayList) {
3. System.out.println("s = " + s);
4. }
9、删掉所有元素:
清空LinkedList
lList.clear();
10、删除列表的首位元素
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class Main {
3. public static void main(String[] args) {
4. LinkedList
5. lList.add("1");
6. lList.add("2");
7. lList.add("3");
8. lList.add("4");
9. lList.add("5");
10. System.out.println(lList);
11. //元素在删除的时候,仍然可以获取到元素
12. Object object = lList.removeFirst();
13. System.out.println(object + " has been removed");
14. System.out.println(lList);
15. object = lList.removeLast();
16. System.out.println(object + " has been removed");
17. System.out.println(lList);
18. }
19.}
11、根据范围删除列表元素
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class Main {
3. public static void main(String[] args) {
4. LinkedList
5. lList.add("1");
6. lList.add("2");
7. lList.add("3");
8. lList.add("4");
9. lList.add("5");
10. System.out.println(lList);
11. lList.subList(2, 5).clear();
12. System.out.println(lList);
13. }
14.}
12、删除链表的特定元素
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class Main {
3. public static void main(String[] args) {
4. LinkedList
5. lList.add("1");
6. lList.add("2");
7. lList.add("3");
8. lList.add("4");
9. lList.add("5");
10. System.out.println(lList);
11. System.out.println(lList.remove("2"));//删除元素值=2的元素
12. System.out.println(lList);
13. Object obj = lList.remove
(2); //删除第二个元素
14. System.out.println(obj + " 已经从链表删除");
15. System.out.println(lList);
16. }
17.}
13、将LinkedList转换为数组,数组长度为0
[java] viewplaincopy
1.import java.util.LinkedList;
2.import java.util.List;
3.public class Main {
4. public static void main(String[] args) {
5. List
6. theList.add("A");
7. theList.add("B");
8. theList.add("C");
9. theList.add("D");
10. String[] my = theList.toArray(new String[0]);
11. for (int i = 0; i < my.length; i++) {
12. System.out.println(my[i]);
13. }
14. }
15.}
14、将LinkedList转换为数组,数组长度为链表长度
[java] viewplaincopy
1.import java.util.LinkedList;
2.import java.util.List;
3.public class Main {
4. public static void main(String[] args) {
5. List
6. theList.add("A");
7. theList.add("B");
8. theList.add("C");
9. theList.add("D");
10. String[] my = theList.toArray(new String[theList.size()]);
11. for (int i = 0; i < my.length; i++) {
12. System.out.println(my[i]);
13. }
14. }
15.}
15、将LinkedList转换成ArrayList
[java] viewplaincopy
1.import java.util.ArrayList;
2.import java.util.LinkedList;
3.import java.util.List;
4.public class Main {
5. public static void main(String[] args) {
6. LinkedList
7. myQueue.add("A");
8. myQueue.add("B");
9. myQueue.add("C");
10. myQueue.add("D");
11. List
12. for (Object theFruit :
myList)
13. System.out.println(theFruit);
14. }
15.}
16、实现栈
[java] viewplaincopy
1.import java.util.Collections;
2.import java.util.LinkedList;
3.public class Main {
4. public static void main(String[] argv) throws Exception {
5. LinkedList stack = new LinkedList();
6. Object object = "";
7. stack.addFirst(object);
8. Object o = stack.getFirst();
9. stack = (LinkedList) Collections.synchronizedList(stack);
10. }
11.}
17、实现队列
[java] viewplaincopy
1.import java.util.LinkedList;
2.public class Main {
3. public static void main(String[] argv) throws Exception {
4. LinkedList queue = new LinkedList();
5. Object object = "";
6. // Add to end of queue
7. queue.add(object);
8. // Get head of queue
9. Object o = queue.removeFirst();
10. }
11.}
18、同步方法
[java] viewplaincopy
1.import java.util.Collections;
2.import java.util.LinkedList;
3.public class Main {
4. public static void main(String[] argv) throws Exception {
5. LinkedList queue = new LinkedList();
6. Object object = "";
7. queue.add(object);
8. Object o = queue.removeFirst();
9. queue = (LinkedList) Collections.synchronizedList(queue);
10. }
11.}
19、查找元素位置
[java] viewplaincopy
1.import java.util.LinkedList;
2.
3.public class Main {
4. public static void main(String[] args) {
5. LinkedList
6. lList.add("1");
7. lList.add("2");
8. lList.add("3");
9. lList.add("4");
10. lList.add("5");
11. lList.add("2");
12. System.out.println(lList.indexOf("2"));
13. System.out.println(lList.lastIndexOf("2"));
14. }
15.}
20、替换元素
[java] viewplaincopy
1.import java.util.LinkedList;
2.
3.public class Main {
4. public static void main(String[] args) {
5. LinkedList
6. lList.add("1");
7. lList.add("2");
8. lList.add("3");
9. lList.add("4");
10. lList.add("5");
11. System.out.println(lList);
12. lList.set(3, "Replaced");//使用set方法替换元素,方法的第一个参数是元素索引,后一个是替换值
13. System.out.println(lList);
14. }
15.}
21、链表添加对象
[java] viewplaincopy
1.import java.util.LinkedList;
2.class Address {
3. private String name;
4. private String street;
5. private String city;
6. private String state;
7. private String code;
8. Address(String n, Str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LinkedList 基本 用法