美文网首页
LinkedList

LinkedList

作者: Harper324 | 来源:发表于2019-02-21 21:38 被阅读0次

特点:

1、 LinkedList以链表的形式存储数据、对增删元素有很高的效率、查询效率较低、尤其是随机访问、效率不忍直视、
2、 LinkedList继承AbstractSequentialdList(其继承与AbstractList、所以要求其子类要实现通过索引操作元素)、使得LinkedList支持使用索引的“增删改查”操作、
3、LinkedList直接实现了List接口、使其可以内部存储元素有序并且为每个元素提供索引值、
4、LinkedList直接实现了Deque接口、Deque接口继承了Queue、使其可以作为双向链表这种数据结构来使用、操作元素、
5、LinkedList直接实现了Cloneable接口、使其可以复制其中的全部元素
6、存放的元素有序可重复

构造器:

  • LinkedList() 创建一个空的list容器集合
  • LinkedList(Collection<? extends E> collection) // 创建一个LinkedList,包含给定集合中的全部元素。

常用方法:

  • boolean add(Object o) 添加一个元素到集合的末尾,返回是否添加成功。
  • boolean addAll(Collection c) 将一个集合里面的所有元素添加到指定集合的后面,返回是否添加成功。
  • void clear() 清空集合里面的所有元素。
  • Object clone() 返回一个集合的拷贝。
  • boolean contains(Object o) 判断一个集合是否包含某个元素,如果包含则返回true,否则返回false,如果要改写判断是否包含的规则,则需要重写equals方法。
  • Object get(int index) 根据下标来获取集合元素
  • int indexOf(Object o) 通过元素来找到它所在集合的下标。
  • Object remove(int index) 通过下标来删除指定元素。
  • int size() 返回集合的长度
  • Object[] toArray()返回包含集合里面所有元素的数组,用于将集合转成数组。

遍历

  • for循环
for (int i = 0; i < collection.size(); i++) {
    // some code
    // example: collection.get(i);
}
  • 自动增强的for循环
for (Object obj : collection) {
    // some code
}
  • 迭代器
Iterator<Object> it = collection.iterator();
while(it.hasNext()){
    // some code
    // example it.next()
}

例子###

import java.util.Iterator;
import java.util.LinkedList;

public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList ll = new LinkedList();//该声明方式只能用for循环遍历
        LinkedList<Integer> llist=new LinkedList<Integer>();
        System.out.println("Initial size of ll is" + ll);

        // add elements to ll
        ll.add(1);
        ll.add(2);
        ll.add(3);
        ll.add(4);
        ll.add(5);
        ll.add(6);

        llist.add(6);
        llist.add(7);
        llist.add(8);
        llist.add(9);
        llist.add(10);
        llist.add(11);

        //show the linked list
        System.out.println(ll);
        System.out.println(ll.size());

        //获取linked list 的第一个元素和最后一个元素
        System.out.println("first element:"+ll.getFirst());
        System.out.println("first element:"+ll.getLast());

        //删除linked list的第一个元素和最后一个元素
        ll.removeFirst();
        ll.removeLast();
        System.out.println(ll);

        //判断linked list是否包含某个元素
        System.out.println(ll.contains(2));

        //返回linked list中某个元素的索引
        System.out.println(ll.indexOf(3));

        //在任意位置插入元素
        System.out.println(ll.set(1,"s"));


        //遍历linked list
        //For Loop Example
        for (int i=0; i<ll.size();i++) {
            System.out.println(ll.get(i));
        }

        //Advance For Loop Example
        for(Integer integ:llist) {
            System.out.println(integ);

        }

        //Iterator Example
        Iterator<Integer> crunchifyIterator = llist.iterator();
        while (crunchifyIterator.hasNext()) {
            System.out.println(crunchifyIterator.next());
        }
        

    }
}

相关文章

网友评论

      本文标题:LinkedList

      本文链接:https://www.haomeiwen.com/subject/xegqyqtx.html