29.3 ArrayList、List、LinkedList(链表)优缺点

 ArrayList、List特点:查询快、增删慢

 链表特点:查询慢,增删快

案例

package day29_collection集合体系;

import java.util.ArrayList;
import java.util.List;

/*
 * List:
 *         有序的(存储和读取的顺序是一致的)
 *         有整数索引
 *         允许重复的
 *
 * List的特有功能:
 *             void add(0, E element)
 *             E get(int index)
 *             E remove(int index)
 *          E set(int index, E element)
 *
 *   增删改查
 */
public class ListDemo {
    public static void main(String[] args) {
        List li = new ArrayList();
        li.add("hello");
        li.add("world");
        li.add("java");

        li.set(1,"aa"); //将指定索引位置的元素替换为指定元素,并将原先的元素返回
        li.remove(2); //删除指定元素并返回

        for(int i=0;i<li.size();i++) {
            System.out.println(li.get(i));
        }
    }
}
package day29_collection集合体系;

import java.util.LinkedList;

/*
 * List的常用子类:
 *         ArrayList
 *             底层是数组结构,查询快,增删慢
 *         LinkedList
 *             底层结构是链表,查询慢,增删快
 *
 * 如何选择使用不同的集合?
 *         如果查询多,增删少,则使用ArrayList
 *         如果查询少,增删多,则使用LinkedList
 *         如果你不知道使用什么,则使用ArrayList
 *
 * LinkedList的特有功能:
 *             void addFirst(E e)
 *             void addLast(E e)
             E getFirst()
             E getLast()
             E removeFirst()
             E removeLast()
 *
 */
public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList kl = new LinkedList();
        kl.add("hello");
        kl.add("wrold");

        kl.addFirst("java");//将元素添加到索引为0的位置
        kl.addLast("android");//将元素添加到索引为size()-1的位置

        System.out.println(kl.getFirst());
        System.out.println(kl.getLast());

        System.out.println(kl.removeFirst());
        System.out.println(kl);
    }
}
原文地址:https://www.cnblogs.com/longesang/p/11265553.html