一.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]
}
}