1、List集合的特点
有序、可重复
2、List接口的方法
- 没有注释的方法是继承Collection接口的
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
/**
* 在集合指定索引出插入参数集合
*/
List<String> newList = new ArrayList<>();
boolean addAll = list.addAll(1, newList);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
/**
* 用函数接口的返回结果替代原list中的值
*/
list.replaceAll(t -> t + 1);
/**
* 给集合排序
*/
list.sort(String::compareTo);
void clear();
boolean equals(Object o);
int hashCode();
/**
* 获取索引处的元素
*/
String s = list.get(1);
/**
* 替换指定索引处的元素,并返回原来的值
*/
String baby = list.set(2, "baby");
/**
* 指定位置插入指定元素
*/
list.add(3, "lucy");
/**
* 删除指定索引处的元素,返回删除的值
*/
String remove = list.remove(3);
/**
* 返回指定元素的索引,没有就返回-1
*/
int lucy = list.indexOf("lucy");
/**
* 返回指定元素最后一次出现的索引
*/
int i = list.lastIndexOf("lucy");
/**
* 返回一个list迭代器,比Iterator更强大,可以双向遍历,可以遍历的时候添加元素,可以定位索引位置,还可以修改对象
*/
ListIterator<String> listIterator = list.listIterator();
/**
* 返回一个list迭代器,直接指向索引处的元素
*/
ListIterator<String> iterator = list.listIterator(3);
/**
* 截取集合(索引包头不包尾)
*/
List<String> subList = list.subList(0, 4);
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, Spliterator.ORDERED);
}