设为首页 加入收藏

TOP

LinkedList基本用法(一)
2015-07-26 20:41:48 来源: 作者: 【 】 浏览:90
Tags:LinkedList 基本 用法

LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.
LinkedList的构造函数如下
1. public LinkedList():? ——生成空的链表
2. public LinkedList(Collection col):? 复制构造函数


1、获取链表的第一个和最后一个元素
import java.util.LinkedList;



public class LinkedListTest{
? public static void main(String[] args) {
? ? LinkedList lList = new LinkedList();
? ? lList.add("1");
? ? lList.add("2");
? ? lList.add("3");
? ? lList.add("4");
? ? lList.add("5");


?


? ? System.out.println("链表的第一个元素是 : " + lList.getFirst());
? ? System.out.println("链表最后一个元素是 : " + lList.getLast());
? }
}


2、获取链表元素


for (String str: lList) {
? ? ? System.out.println(str);
? ? }


3、从链表生成子表


List subl = lList.subList(1, 4);
? ? System.out.println(subl);
? ? lst.remove(2);
? ? System.out.println(lst);
? ? System.out.println(lList);


List subl = lList.subList(1, 4);
? ? System.out.println(subl);
? ? lst.remove(2);
? ? System.out.println(lst);
? ? System.out.println(lList);


4、添加元素:添加单个元素
?如果不指定索引的话,元素将被添加到链表的最后.
public boolean add(Object element)
public boolean add(int index, Object element)
也可以把链表当初栈或者队列来处理:
public boolean addFirst(Object element)
public boolean addLast(Object element)
addLast()方法和不带索引的add()方法实现的效果一样.


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、删除元素


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


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、使用链表实现栈效果


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、使用链表来实现队列效果


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转换成ArrayList


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


ArrayList arrayList = new ArrayList(linkedList);
? ? for (String s : arrayList)

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇红黑树的原理分析和算法设计 下一篇浅析Java过滤器

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: