LinkedList的本质是双向链表。它也可以被当作堆栈、队列或双端队列进行操作。它采用的是链表式储存,所以比较适合用来执行插入,删除等功能,减少在列表中插入或删除元素所付出的代价。
1.构造函数
LinkedList() 用于创建一个空的链表。
LinkedList(Collection<? extends E> collection) 创建一个LinkedList,保护Collection中的全部元素。
2. 常用方法
- boolean add(Object element) 它将元素附加到列表的末尾。
void addFirst(E element) 元素附加到列表的头部
void addLast(Eelement) 元素附加到列表的尾部
LinkedList list = new LinkedList();
lList.add("1");
lList.addFirst("2");
lList.addLast("3");
lList.add("1");
lList.add("5");
System.out.println(list); //[2, 1, 3, 1, 5]
- Object getFirst() 它返回链表的第一个元素。
Object getLast() 它返回链接列表的最后一个元素。
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()); //
}
}
3.查找元素
.int indexOf(Object element) 如果找到元素,它将返回元素第一次出现的索引。否则,它返回-1。
int lastIndexOf(Object element) 如果找到元素,它将返回元素最后一次出现的索引。否则,它返回-1。
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("1");
lList.add("5");
System.out.println( lList.indexOf("1")); // 0
System.out.println(lList.lastIndexOf("1")); // 3
}
}
- E remove(int location)
E removeFirst() 删除并返回链接列表的头部一个元素
E removeLast() 删除并返回链接列表的尾部一个元素
LinkedList<String> lList = new LinkedList<String>();
lList.add("1");
lList.add("2");
lList.add("3");
lList.add("1");
lList.add("5");
System.out.println(lList.removeFirst());//1
System.out.println(lList.removeLast());//5
- void clear():它删除列表中的所有元素。
- Object clone():它用于制作现有链接列表的副本。
- Object set(int index,Object element)它用于用新元素替换列表中的现有元素。
- boolean contains(Object element)如果元素存在于列表中,则返回true。
3. 遍历
LinkedList支持多种遍历方式。建议不要采用随机访问的方式去遍历LinkedList,而采用逐个遍历的方式。
(01) 第一种,通过迭代器遍历。即通过Iterator去遍历。
Iterator<String> it = li.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
(02) for循环,
for(int i=0;i<lList.size();i++){
System.out.println(lList.get(i));
}
(03) 通过另外一种for循环来遍历LinkedList
for (Integer integ:list)
;
public class Test {
public static void main(String[] args) {
LinkedList<String> lList = new LinkedList<String>();
lList.add("1");
lList.add("2");
lList.add("3");
lList.add("1");
lList.add("5");
for (String str : lList) {
System.out.println(str);
}
}
}
输出:
1
2
3
1
5
网友评论