标签:
java.util.LinkedList
双向链表,两段效率较高,中间效率较低,一般只在链表的两段插入/删除数据。
1.创建对象
LinkedList list = new LinkedList();
2.方法
add(数据) 添加数据
add(int index, 数据) 在指定位置插入数据
addFirst(数据)
addLast(数据)
getFirst()
getLast()
removeFirst()
removeLast()
FIFO 操作 First In First Out,队列操作,Queue
offer(数据) - addLast
peek() - getFirst
poll() - removeFist
LIFO 操作 Last In Fisrt Out,栈操作,Stack
push() - addFirst
pop() - removeFist
get(int index) - 获得指定位置的值
contains(数据) - 判断列表中是否存在与指定数据相等(equals)的值
set(int index, 数据) - 将指定位置设置为新的值
size() - 获得列表中数据的数量
remove(int index) - 移除指定位置的元素,并返回被移除的数据
remove(数据) - 移除与指定数据相等的数据
clear() - 清空
iterator() - 获得迭代器实例
package com.example.test; import java.util.Iterator; import java.util.LinkedList; public class test { public static void main(String[] args) { LinkedList<String> list = new LinkedList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("ddd"); list.add("eee"); list.add("fff"); //[aaa, bbb, ccc, ddd, eee, fff] list.add(0, "---"); //[---, aaa, bbb, ccc, ddd, eee, fff] list.addFirst("fff"); //[fff, ---, aaa, bbb, ccc, ddd, eee, fff],添加的值可以重复 String str = list.removeFirst();//str =fff; list = [---, aaa, bbb, ccc, ddd, eee, fff] list.addLast("ggg"); //[---, aaa, bbb, ccc, ddd, eee, fff, ggg] String str1 = list.removeLast();//str = ggg list = [---, aaa, bbb, ccc, ddd, eee, fff] //System.out.println(list);
//下标遍历 LinkedList 效率低
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
//建议使用迭代器 Iterator<String> it =list.iterator(); while(it.hasNext()){ System.out.println(it.next());//按顺序输出list的所有元素。 } //输出结果: // --- // aaa // bbb // ccc // ddd // eee // fff } }
标签:
原文地址:http://www.cnblogs.com/fazheng/p/5087350.html