list遍历
1、通过下标遍历
2、迭代器遍历 Collection 可以通过迭代器,删除集合中的元素
3、for-each Collocation JDK5
4、forEach()方法 需要实现java.util.function.Consumer接口
这里列举了几种方法,希望能够帮助到您
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
public class list_ergodic {
public static void main(String[] args) {
List list = new ArrayList();
//集合添加名字
list.add("Tom");
list.add("Jerry");
list.add("Jachin");
list.add("Steve");
list.add("Job");
// print1(list);
// print2(list);
//print3(list);
//print4(list);
print5(list);
}
//方法一传统遍历
static void print1(List list){
for(int i=0;i<list.size();i++)
{
Object o = list.get(i);//获得下标i的元素
String s = o.toString();
// if("Tom".equals(s)) {//如果以这种方式删除Tom,可以尝试一下
// list.remove(i);
// continue;
// /*最后的结果是JACHIN,STEVE,JOB,只是想删除一个tom,最后Jerry也没了。这是因为当执行完删除tom后,
// list会自动往前补,这时jerry的下标变成了0.而遍历下标已经该到1了,所以跳过了jerry;*//*
// }*/
System.out.println(s.toUpperCase());//输出大写
}
}
//方法二迭代器
static void print2(Collection con){
Iterator it = con.iterator();//返回在此 collection 的元素上进行迭代的迭代器
while(it.hasNext())
{
Object o = it.next();
String s = o.toString();
// if ("Tom".equals(s)){
// it.remove();
// continue;
// }*/
System.out.println(s.toUpperCase());
}
}
//方法三foreach
static void print3(Collection con) {
for (Object o : con) {
String s = (String) o;
// if ("Tom".equals(s))
// {
// con.remove(s);
// continue;
// //报错
// //foreach底层原理也是使用迭代器,foreach不能改变集合,想改变还是要使用原始方法。
// }
System.out.println(s.toUpperCase());
}
}
//方法四 forEach内部类
static void print4(Collection con){
con.forEach(new Consumer() {
@Override
public void accept(Object o) {
String s = o.toString();
System.out.println(s.toUpperCase());
}
});
}
//方法五 Lambda表达式
static void print5(Collection con){
con.forEach(System.out::println);
con.forEach((o)->System.out.println(o));
}
}