List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍。
我总结了三种List集合的遍历方式,下面一一来介绍。
首先来创建一个实体类,以供下面使用。
public class News{ private int id; private String title; private String author; public News(int id, String title, String author) { super(); this.id = id; this.title = title; this.author = author; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
第一种、最基础的遍历方式:for循环,指定下标长度,使用List集合的size()方法,进行for循环遍历
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
ArrayList<News> list = new ArrayList<News>();
list.add(new News(1,"list1","a"));
list.add(new News(2,"list2","b"));
list.add(new News(3,"list3","c"));
list.add(new News(4,"list4","d"));
for (int i = 0; i < list.size(); i++) { News s = (News)list.get(i); System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor()); }
}
}
第二种、较为简洁的遍历方式:使用foreach遍历List,但不能对某一个元素进行操作(这种方法在遍历数组和Map集合的时候同样适用)
import java.util.ArrayList; public class Demo02 { public static void main(String[] args) { ArrayList<News> list = new ArrayList<News>();
list.add(new News(1,"list1","a"));
list.add(new News(2,"list2","b"));
list.add(new News(3,"list3","c"));
list.add(new News(4,"list4","d"));
for (News s : list) { System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor()); } } }
第三种、适用迭代器Iterator遍历:直接根据List集合的自动遍历
import java.util.ArrayList; public class Demo03 { public static void main(String[] args) { ArrayList<News> list = new ArrayList<News>(); list.add(new News(1,"list1","a")); list.add(new News(2,"list2","b")); list.add(new News(3,"list3","c")); list.add(new News(4,"list4","d")); Iterator<News> iter = list.iterator(); while (iter.hasNext()) { News s = (News) iter.next(); System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor()); } } }
上面三种遍历方式差别不是特别大,在没有特定的要求时,均可以使用。不过根据不同的特殊情况,要合理选择方式,来提高开发的效率。