List是Java中比较常用的集合类,List 是一个接口,它继承于Collection的接口。它代表着有序的队列。
1. List实例化

/* 实例化List */
List<String> lists = new ArrayList<String>();

2. 添加元素

(1)在List尾添加元素
void add(E element)
在List尾插入元素

/* 添加元素 */
lists.add("a");
lists.add("b");
lists.add("c");
lists.add("d");

(2)在指定位置添加元素
void add(int index, E element)
在指定位置插入元素,后面的元素都往后移一个元素。

/* 将字符串添加到指定位置 */
lists.add(3, "e");

(3)插入其他集合全部的元素
boolean addAll(int index, Collection<? extends E> c)
在指定的位置中插入c集合全部的元素,如果集合发生改变,则返回true,否则返回false。
意思就是当插入的集合c没有元素,那么就返回false,如果集合c有元素,插入成功,那么就返回true。

/* 生成新list */
List<String> new_lists = new ArrayList<String>();
new_lists = lists.subList(0,2);
/* lists.addAll后新的lists */
lists.addAll(new_lists);

3. 修改元素
E set(int index, E element)
在索引为index位置的元素更改为element元素

/* 修改元素 */
lists.set(4, "f");

4. 删除元素
E remove(int index)
删除指定索引的对象

/* 删除元素(index或object) */
lists.remove(0);
lists.remove("b");

5. 查询元素
(1)指定位置范围内结果
List subList(int fromIndex, int toIndex)
返回从索引fromIndex到toIndex的元素集合,包左不包右(截取集合)

/* 生成新list */
List<String> new_lists = new ArrayList<String>();
new_lists = lists.subList(0,2);

(2)查找指定位置的元素
E get(int index)
返回list集合中指定索引位置的元素
(3)查找元素的位置
int indexOf(Object o)
返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1
lastIndexOf(Object o)
返回list集合中最后一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1

/* 查询 */
String item = lists.get(1);
int n = lists.indexOf("c");
int n_last = lists.lastIndexOf("c");
System.out.println("get(位置为1的元素):" + item + "  indexOf(c第一次出现的位置):" + n 
+ "  indexOf(c最后一次出现的位置):" + n_last);

(4)查看是否包含某个元素
boolean contains(Object o)
返回true或者false

System.out.println("是否包含a:" + lists.contains("a"));

6. 清空List

/* 清空 */
lists.clear();

7. 输出List

(1)直接输出

/* 直接输出 */
System.out.println("直接输出:" + lists);

(2)普通输出

/* 普通输出 */
Iterator<String> it = lists.iterator();
while (it.hasNext()) {
	System.out.print(it.next() + " ");
}
System.out.println();

(3)Java8新特性输出

/* Java8输出 */
lists.forEach((x) -> System.out.print(x + " "));
System.out.println();

8. 判断是否为空
boolean isEmpty()

System.out.println("lists是否为空:" + lists.isEmpty());

9. 所有源码

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

//List使用方法
public class Main {

    public static void main(String[] args) {
         /* 实例化List */
        List<String> lists = new ArrayList<String>();

        /* 添加元素 */
        lists.add("a");
        lists.add("b");
        lists.add("c");
        lists.add("d");


        /* 普通输出 */
        Iterator<String> it = lists.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");
        }
        System.out.println();

        /* 将字符串添加到指定位置 */
        lists.add(3, "e");

        /* Java8输出 */
        lists.forEach((x) -> System.out.print(x + " "));
        System.out.println();

        /* 修改元素 */
        lists.set(4, "f");
        lists.forEach((x) -> System.out.print(x + " "));
        System.out.println();

        /* 删除元素(index或object) */
        lists.remove(0);
        lists.remove("b");
        lists.forEach((x) -> System.out.print(x + " "));
        System.out.println();

        lists.add("c");
        /* 查询 */
        String item = lists.get(1);
        int n = lists.indexOf("c");
        int n_last = lists.lastIndexOf("c");
        System.out.println("get(位置为1的元素):" + item + "  indexOf(c第一次出现的位置):" + n + "  indexOf(c最后一次出现的位置):" + n_last);

        /* 直接输出 */
        System.out.println("直接输出:" + lists);

        /* 生成新list */
        List<String> new_lists = new ArrayList<String>();
        new_lists = lists.subList(0,2);
        System.out.println("新List:" + new_lists);
        System.out.println("是否包含a:" + lists.contains("a"));
        System.out.println("是否包含e:" + lists.contains("e"));

        /* lists.addAll后新的lists */
        lists.addAll(new_lists);
        System.out.println("lists.addAll后新的lists:" + lists);

        /* 清空 */
        System.out.println("lists是否为空:" + lists.isEmpty());
        lists.clear();
        /* 直接输出 */
        System.out.println("lists是否为空:" + lists.isEmpty());

    }

}