一.List集合的特有方法:
List集合也是一个接口,不能直接创建对象,可用向上转型的方式创建对象。
二.举例:
a.void add(int index,E element)->在此集合中的指定位置插入指定的元素
细节:原来索引上的元素会依次往后移
b.E remove(int index)->删除指定索引处的元素,返回被删除的元素(E代表元素)
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A01_ListDemo1 { public static void main(String[] args) { //1.创建一个集合 List<String> list=new ArrayList<>(); //2.添加元素 list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add list.add("bbb");//1索引上 list.add("ccc"); //void add(int index,E element)->在此集合中的指定位置插入指定的元素 list.add(1,"QQQ"); //E remove(int index)->删除指定索引处的元素,返回被删除的元素(E代表元素) String remove=list.remove(0); System.out.println(remove); //3.打印集合 System.out.println(list); /*运行结果为:aaa [QQQ, bbb, ccc]*/ } }
c.E set(int index,E element)->修改指定索引处的元素,返回被修改的元素
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A01_ListDemo1 { public static void main(String[] args) { //1.创建一个集合 List<String> list=new ArrayList<>(); //2.添加元素 list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add list.add("bbb");//1索引上 list.add("ccc"); //E set(int index,E element)->修改指定索引处的元素,返回被修改的元素 String result=list.set(0,"QQQ"); System.out.println(result);//运行结果为aaa //3.打印集合 System.out.println(list);//运行结果为[QQQ, bbb, ccc] } }
d.E get(int index)->返回指定索引上的元素
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A01_ListDemo1 { public static void main(String[] args) { //1.创建一个集合 List<String> list=new ArrayList<>(); //2.添加元素 list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add list.add("bbb");//1索引上 list.add("ccc"); //E get(int index)->返回指定索引上的元素 String s=list.get(0); System.out.println(s);//运行结果为aaa //3.打印集合 System.out.println(list);//运行结果为[aaa, bbb, ccc] } }
三.List集合的遍历方式:
1.迭代器遍历:
如:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list=new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //迭代器 //获取迭代器对象 Iterator<String> it=list.iterator(); while (it.hasNext()){ String s=it.next(); System.out.println(s); /*运行结果为aaa bbb ccc*/ } } }
2.列表迭代器遍历:(要用到接口ListIterator,可通过API帮助文档看详解)
如:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //列表迭代器遍历 //获取一个列表迭代器对象,该列表迭代器里面的指针默认指向0索引 ListIterator<String> it = list.listIterator(); while (it.hasNext()){ String s=it.next(); System.out.println(s); /*运行结果为aaa bbb ccc */ } } }
3.增强for遍历:
如:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list=new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //增强for遍历 /*下面的变量s其实就是一个第三方的变量而已, 在循环的过程中依次表示集合中的每一个元素 */ for (String s : list) { System.out.println(s); /*运行结果为aaa bbb ccc*/ } } }
4.Lambda表达式遍历:
如:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //Lambda表达式 /*forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素 并把每一个元素传递给下面的accept方法 accept方法的形参s,依次表示集合中的每一个元素 */ list.forEach(s -> System.out.println(s)); /*运行结果为aaa bbb ccc*/ } }
5.普通for循环(因为List集合存在索引):
如:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //普通for循环 //核心:size方法,get方法以及循环,利用索引获取集合中的每一个元素 for (int i = 0; i < list.size(); i++) { //i:依次表示集合中的每一个索引 String s= list.get(i); System.out.println(s); /*运行结果为aaa bbb ccc */ } } }
四.补充:
package com.itheima.a02myList; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class A03_ListDemo3 { public static void main(String[] args) { //创建集合并添加元素 List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); //列表迭代器遍历 //获取一个列表迭代器对象,该列表迭代器里面的指针默认指向0索引 //当中额外添加了一个方法:在遍历的过程中,可以添加元素->不能用add即集合添加元素的方法 //只能用迭代器自身拥有的添加元素的方法->用迭代器调用 ListIterator<String> it = list.listIterator(); while (it.hasNext()){ String s=it.next(); if("bbb".equals(s)){ //此时添加qqq it.add("qqq");//不能用集合添加即list.add("qqq"); } } System.out.println(list);//运行结果为[aaa, bbb, qqq, ccc] } }