package com.etime.example;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.function.Consumer;
public class Example04 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
//删除元素
list.remove(1);
//如果在调用方法的时候,方法出现了重载现象,会优先调用,形参和实参类型一样的方法;
//删除元素1解决办法
//手动装箱,把基本数据类型1转换成Integer类型;
Integer i = Integer.valueOf(1);
list.remove(i);
//返回指定索引处的元素
Integer integer = list.get(0);
System.out.println(integer);
}
}
class Example05{
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//迭代器
/*Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next);
}
*/
//增强for遍历
/*for(String s:list) {
System.out.println(s);
}
*/
//lambda遍历
//list.forEach(s -> System.out.println(s));
//匿名内部类的形式
//forEach方法的底层其实就是一个循环遍历,依次可以得到集合的每一个元素
//并把每一个元素传递给羡慕的accept方法
//accept方法的形参s,依次表示集合中的每一个元素
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//普通for循环--利用索引获取集合中的每一个元素
for(int i = 0;i < list.size();i++) {
String s = list.get(i);
System.out.println(s);
}
//列表迭代器
//获取一个列表的迭代器的对象,里面的指针也是默认指向0索引的;
//相比于迭代器,额外增加了一个方法,在遍历过程中,可以添加元素;
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String str = listIterator.next();
if("bbb".equals(str)) {
listIterator.add("qqq");
}
}
System.out.println(list);
}
}
/*
*五种遍历方式对比:
* 1.迭代器遍历 ----> 在遍历过程中需要删除元素,请使用迭代器;
* 2.列表迭代器 ----> 在遍历过程中需要添加元素,请使用列表迭代器;
* 3.增强for遍历 ----> 仅仅想遍历,那么使用for或者lambda表达式;
* 4.lambda表达式
* 5.普通for ----> 如果遍历的时候算操作索引,可以用普通for;
*/