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());
}
}