List中元素是有序的,元素可以重复,因为该集合有索引。
方法摘要 | ||
---|---|---|
boolean |
add(E e)
向列表的尾部添加指定的元素(可选操作)。 |
|
void |
add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。 |
|
boolean |
addAll(Collection<? extends
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。 |
|
boolean |
addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。 |
|
void |
clear()
从列表中移除所有元素(可选操作)。 |
|
boolean |
contains(Object o)
如果列表包含指定的元素,则返回 true。 |
|
boolean |
containsAll(Collection<?> c)
如果列表包含指定 collection 的所有元素,则返回 true。 |
|
boolean |
equals(Object o)
比较指定的对象与列表是否相等。 |
|
E |
get(int index)
返回列表中指定位置的元素。 |
|
int |
hashCode()
返回列表的哈希码值。 |
|
int |
indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。 |
|
boolean |
isEmpty()
如果列表不包含元素,则返回 true。 |
|
Iterator<E> |
iterator()
返回按适当顺序在列表的元素上进行迭代的迭代器。 |
|
int |
lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。 |
|
ListIterator<E> |
listIterator()
返回此列表元素的列表迭代器(按适当顺序)。 |
|
ListIterator<E> |
listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。 |
|
E |
remove(int index)
移除列表中指定位置的元素(可选操作)。 |
|
boolean |
remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。 |
|
boolean |
removeAll(Collection<?> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。 |
|
boolean |
retainAll(Collection<?> c)
仅在列表中保留指定 collection 中所包含的元素(可选操作)。 |
|
E |
set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。 |
|
int |
size()
返回列表中的元素数。 |
|
List<E> |
subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。 |
|
Object[] |
toArray()
返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。 |
|
|
toArray(T[] a)
返回按适当顺序(从第一个元素到最后一个元素)包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。 |
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /** * * List中特有的方法:凡是可以操作角标的方法都是 * * 增 add (index,element); addAll (index,Collection); 删 remove (index); 改 set * (index,element); 查 get (index); subList (from,to); listIterator (); * * @author Caesar * * List集合特有的迭代器,ListIterator是iterator的子接口 在迭代时,不可以通过集合对象的方法操作集合中的元素 * 只能对元素进行判断,取出,删除的操作 如果想要其他的操作,如添加,修改等,就需要使用期子接口ListIterator * 该接口只能通过List集合的ListIterator方法获取。 */ public class ListDemo { public static void main(String[] args) { // TODO Auto-generated method stub // method_1(); method_2(); } public static void method_2() { // 演示列表迭代器 ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); /* * // 在迭代过程中准备添加或者删除元素 Iterator it = al.iterator(); 迭代器操作 while * (it.hasNext()) { Object object = it.next(); if (object.equals("02")) * { //al.add("05");//并发访问,可能会产生安全隐患,不能对同一组元素同时进行不同的操作 it.remove * ();//集合容器中的02也会被删除,将02的引用从集合中删除 //迭代器操作中没有添加操作。 } sop(it.next()); } */ ListIterator li = al.listIterator(); while (li.hasNext()) { Object object = li.next(); if (object.equals("02")) { li.add("08"); } } sop(al); sop(li.hasNext()); sop(li.hasPrevious()); // 反向遍历 while (li.hasPrevious()) { sop(li.previous()); } } public static void method_1() { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); sop("原集合是:" + al); // 在指定位置添加元素 al.add(1, "09"); sop(al); // 删除元素 al.remove(2); sop(al); // 修改元素 al.set(0, "00000005"); sop(al); // 通过角标获取元素 sop("get 2 = " + al.get(2)); // 获取所有元素 for (int x = 0; x < al.size(); x++) { System.out.println(al.get(x)); } Iterator it = al.iterator(); while (it.hasNext()) { sop(it.next()); } // 通过indexOf 获取对象的位置 sop("index = " + al.indexOf("03")); List sub = al.subList(1, 3); sop(sub); } public static void sop(Object obj) { System.out.println(obj); } }