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<String> lList = new LinkedList<String>();
    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);

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

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<String> arrayList = new ArrayList<String>(linkedList);
    for (String s : arrayList) {
      System.out.println("s = " + s);
    }

9. 删除列表的首位元素

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);
        //元素在删除的时候,仍然可以获取到元素
    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);
  }
}

10. 删除链表的特定元素

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);  //删除第二个元素
    System.out.println(obj + " 已经从链表删除");
    System.out.println(lList);
  }
}

11. 替换元素

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方法替换元素,方法的第一个参数是元素索引,后一个是替换值
    System.out.println(lList);
  }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值