美文网首页
ArrayList和LinkedList

ArrayList和LinkedList

作者: only_run | 来源:发表于2018-08-02 08:54 被阅读0次

    ArrayList是使用数组实现的,若要从数组中删除或插入某一个对象,需要移动后段的数组元素,从而会重新调整索引顺序,调整索引顺序会消耗一定的时间,所以速度上就会比LinkedList要慢许多.

    相反,LinkedList是使用链表实现的,若要从链表中删除或插入某一个对象,只需要改变前后对象的引用即可!

    private void init() {

    //ArrayList以数组的方式来实现List接口的;

        ArrayList arrayList =new ArrayList();

    //LinkedList是采用链表的方式来实现List接口的;增删快

        //  LinkedList适合用来实现Stack(堆栈)与Queue(队列),前者先进后出,后者是先进先出.

        LinkedList linkedList =new LinkedList<>();

    }

    //LinkedList 实现栈

    public class StringStack {

    private LinkedListlinkedList

                =new LinkedList();

    /**

        * 将元素加入LinkedList容器

        * (即插入到链表的第一个位置)

    */

        public void push(String name) {

    linkedList.addFirst(name);

    }

    /**

        * 取出堆栈中最上面的元素

        * (即取出链表linkedList的第一个元素)

    *

        * @return

        */

        public String getTop() {

    return linkedList.getFirst();

    }

    /**

        * 取出并删除最上面的元素

        * (即移出linkedList的第一个元素)

    *

        * @return

        */

        public String pop() {

    return linkedList.removeFirst();

    }

    /**

        * 获取元素个数

        *

        * @return

        */

        public int size() {

    return linkedList.size();

    }

    /**

        * 判断堆栈是否为空

        * (即判断 linkedList是否为空)

    *

        * @return

        */

        public boolean isEmpty() {

    return linkedList.isEmpty();

    }

    //测试

        public void test() {

    StringStack stack =new StringStack();

    stack.push("张三");

    stack.push("李四");

    stack.push("秦时明月");

    System.out.print("第一个元素是:\t");

    System.out.println(stack.getTop());

    System.out.println();

    System.out.println("全部元素:");

    while (!stack.isEmpty()) {

    System.out.println("\t" + stack.pop());

    }

    }

    }

    //LinkedList 实现队列

    //,由于LinkedList也实现了java.util.Queue接口,所以可以直接使用LinkedList的实例来实现.

    public class StringQueue {

    public void test() {

    //父类引用queue指向子类对象

            Queue queue =new LinkedList();

    //offer()方法是往队列加入元素

            queue.offer("李四");

    queue.offer("张三");

    queue.offer("秦时明月");

    String element =null;

    //poll() 方法是 返回队列头部元素并移除

            //peek() 方法是 返回队列头部元素 不移除

            while ((element = queue.poll()) !=null) {

    System.out.println(element +"\t");

    }

    }

    }

    参考

    相关文章

      网友评论

          本文标题:ArrayList和LinkedList

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