List接口: 有序、有下标、元素可以重复
方法:
1、单个元素的添加、删除
void add(int index,Object obj) //指定index位置插入对象o boolean add(Object obj) //列表的尾部添加指定的对象 object remove(int index) //移除列表中指定元素的对象 boolean remove(Object obj) //移除列表中第一次出现的指定对象
2、组元素的添加、删除
boolean addAll(Collection col) //将列表col所有元素添加到列表的结尾 boolean addAll(int index,Collection col) //将集合col添加到列表index的位置 boolean removeAll(Collection col) //移除列表col包含的所有元素 boolean retainAll(Collection col) //保留col中的所有元素 boolean clear() //清空列表
3、元素查询
boolean contains(Object obj) //判断列表是否包含obj对象 Object get(int index) //获取指定索引处的元素 int index(Object obj) //返回指定对象在列表中第一次出现的索引 int size() //获取列表中元素的个数
4、组查询
boolean containsAll(Collection col) //判断col中所有的元素是否包含在列表中 Iterator iterator() //获取列表的一个迭代器,遍历列表 ListIterator listIterator() //获取列表的一个列表迭代器 ListIterator listIterator(int index) //获取从指定位置开始的列表迭代器
egg:以[ 华为,苹果,三星,大哥大]列表为例
package Collection接口; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /** * List的特点:1、有序 有下表 * 2、元素可以重复 * @author AiY */ public class ListDemo { public static void main(String[] args) { //创建一个集合 List list=new ArrayList(); list.add("华为"); list.add("苹果"); list.add("三星"); list.add("大哥大"); System.out.println("元素的个数:"+list.size()); System.out.println(list.toString()); //删除元素 //list.remove("大哥大"); //list.remove(1); //System.out.println(list); //遍历 System.out.println("---使用for遍历"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } System.out.println("---使用增强for"); for(Object object:list){ System.out.println(object); } System.out.println("---使用迭代器"); Iterator iterator=list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } System.out.println("---使用列表迭代器遍历"); //列表迭代器可以增加元素、删除元素、获取元素或者元素脚标 //也可以向前向后遍历 ListIterator listIterator=list.listIterator(); System.out.println("---从前往后遍历"); while(listIterator.hasNext()){ System.out.println(listIterator.nextIndex()+":"+listIterator.next()); } System.out.println("---从后往前遍历"); while(listIterator.hasPrevious()){ System.out.println(listIterator.previousIndex()+":"+listIterator.previous()); } System.out.println(list.contains("大哥大")); //索引下标为2的元素 System.out.println(list.get(2)); //清空 list.clear(); System.out.println(list.size()); } }
元素的个数:4 [华为, 苹果, 三星, 大哥大] ---使用for遍历 华为 苹果 三星 大哥大 ---使用增强for 华为 苹果 三星 大哥大 ---使用迭代器 华为 苹果 三星 大哥大 ---使用列表迭代器遍历 ---从前往后遍历 0:华为 1:苹果 2:三星 3:大哥大 ---从后往前遍历 3:大哥大 2:三星 1:苹果 0:华为 true 三星 0
添加(1):sbulist 的用法是截取列表某一段,其中截取的包含左边,不包含右边
package Collection接口; import java.util.ArrayList; import java.util.List; public class ExampleDemo { public static void main(String[] args) { List list=new ArrayList(); list.add("关羽"); list.add("张飞"); list.add("赵云"); list.add("黄盖"); list.add("马超"); System.out.println(list); List sbulist=list.subList(1,3); System.out.println(sbulist); } }
[关羽, 张飞, 赵云, 黄盖, 马超] [张飞, 赵云]
添加(2): 如果针对的列表是数字,且要删除某一个数字的话,使用list.remove(i),此时移除的是下标为i的数字,而非数字本身,这个时候就需要用另一方法1、使用Object类;2、使用Integer
package Collection接口; import java.util.ArrayList; import java.util.List; public class ListDemo1 { public static void main(String[] args) { //创建 List list=new ArrayList(); for(int i=10;i<=60;i=i+10){ list.add(i); } System.out.println("元素个数"+list.size()+":"+list); //list.remove(10); //删除的只是下标10的元素,而不是10 //删除指定下标的两种方法1、使用object2、使用Integer list.remove((Object)10); list.remove(new Integer(20)); System.out.println("元素个数"+list.size()+":"+list); } }
元素个数6:[10, 20, 30, 40, 50, 60] 元素个数4:[30, 40, 50, 60]