List接口和常用方法
基本介绍:
List接口是Collection接口的子接口
1)List集合类中元素有序(即添加顺序和取出顺序一致),且可重复
2)List集合中每个元素都有其对应的顺序索引,即支持索引(索引是从0开始的)
3)List容器中的元素都对应一个整数型的序号记载其在容器中的位置 , 可以根据序号存取容器中的元素
4)JDK API中List接口的实现类有:
List接口的常用方法:
List集合里添加了一些根据索引来操作集合元素的方法:
1)void add(int index,Object ele):在index位置插入ele元素
2)boolean addAll(int index,Collection eles):从index位置开始将eles中的所有元素添加进来
3)Object get(int index):获取指定index位置的元素
4)int indexOf(Object obj):返回obj在集合中首次出现的位置
5)int lastIndexOf(Object obj):返回obj在集合中末次出现的位置
6)Object remove(int index):移除指定index位置的元素,并返回此元素
7)Object set(index,Object ele):设置指定index位置的元素为ele,相当于是替换
8)List subList(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的子集合
package com.ArrListStu.List_;import java.util.ArrayList;
import java.util.List;public class ListMethod {public static void main(String[] args) {List list = new ArrayList();list.add("张三丰");list.add("贾宝玉");// 1)void add(int index,Object ele):在index位置插入ele元素//在索引=1的位置插入字符串//如果没带索引,默认加在最后面list.add(1,"刘备");System.out.println(list);// 2)boolean addAll(int index,Collection eles):从index位置开始将eles中的所有元素添加进来List list2 = new ArrayList();list2.add("jack");list2.add("tom");list.addAll(1,list2);//把list2插入list索引为1的位置,后面的往后移System.out.println(list);// 3)Object get(int index):获取指定index位置的元素System.out.println(list.get(1));// 4)int indexOf(Object obj):返回obj在集合中首次出现的位置System.out.println(list.indexOf("tom"));// 5)int lastIndexOf(Object obj):返回obj在集合中末次出现的位置list.add("tom");System.out.println(list.lastIndexOf("tom"));// 6)Object remove(int index):移除指定index位置的元素,并返回此元素list.remove(0);System.out.println(list);// 7)Object set(index,Object ele):设置指定index位置的元素为ele,相当于是替换list.set(1,"mary");//索引必须是事先存在的// 8)List subList(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的子集合//以list.subList(0, 2) 为例,取到的是大于0且包含0, 小于2但不包含2之间的数,也就是左闭右开 [0,2)List returnList = list.subList(0, 2);System.out.println(returnList);//[jack, mary]System.out.println(list);}
}习题:
添加十个以上的元素(比如String"hello"),在2号位插入一个元素"泥嚎",获得第五个元素,删除第六个元素,修改第七个元素,再使用迭代器遍历集合
package com.ArrListStu.List_;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListExe {public static void main(String[] args) {List list = new ArrayList();list.add("a");list.add("b");list.add("c");list.add("d");list.add("e");list.add("f");list.add("g");list.add("h");list.add("i");list.add("j");list.add("k");list.add(2,"泥嚎");Object obj = list.get(5);list.remove(6);list.set(7,"修改的索引7");Iterator iterator = list.iterator();while (iterator.hasNext()) {Object next = iterator.next();System.out.println(next);}}
}List的三种遍历方式:
1)使用iterator 迭代器
2)增强for
3)使用普通for
package com.hspedu.list_;import java.util.*;public class ListFor {@SuppressWarnings({"all"})public static void main(String[] args) {//List 接口的实现子类 Vector LinkedList//List list = new ArrayList();//List list = new Vector();List list = new LinkedList();list.add("jack");list.add("tom");list.add("鱼香肉丝");list.add("北京烤鸭子");//遍历//1. 迭代器Iterator iterator = list.iterator();while (iterator.hasNext()) {Object obj = iterator.next();System.out.println(obj);}System.out.println("=====增强for=====");//2. 增强forfor (Object o : list) {System.out.println("o=" + o);}System.out.println("=====普通for====");//3. 使用普通forfor (int i = 0; i < list.size(); i++) {System.out.println("对象=" + list.get(i));}}
}