博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三种List集合的遍历方式
阅读量:5293 次
发布时间:2019-06-14

本文共 2734 字,大约阅读时间需要 9 分钟。

首先我们来建一个简单的实体类:(素材来源于:)

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循环遍历

for( int i = 0 ; i < list.size() ; i++) {
//内部不锁定,效率最高,但在多线程要考虑并发操作的问题。 System.out.println(list.get(i));}
import java.util.ArrayList;public class Demo01 {  public static void main(String[] args) {   ArrayList
list = new ArrayList
();       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集合的时候同样适用)

for(String str : list) {//其内部实质上还是调用了迭代器遍历方式,这种循环方式还有其他限制,不建议使用。    System.out.println(str);}
import java.util.ArrayList;public class Demo02 {  public static void main(String[] args) {    ArrayList
list = new ArrayList
();     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集合的自动遍历

Iterator
iter = list.iterator();while(iter.hasNext()){  //执行过程中会执行数据锁定,性能稍差,若在循环过程中要去掉某个元素只能调用iter.remove()方法。    System.out.println(iter.next());}
import java.util.ArrayList;public class Demo03 {  public static void main(String[] args) {   ArrayList
list = new ArrayList
();       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
iter = list.iterator(); while (iter.hasNext()) { News s = (News) iter.next(); System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor());    }  }}

上面三种遍历方式差别不是特别大,在没有特定的要求时,均可以使用。不过根据不同的特殊情况,要合理选择方式,来提高开发的效率。

转载于:https://www.cnblogs.com/wdzhz/p/11555190.html

你可能感兴趣的文章
jQuery教程详解(一)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
DP学习之路(1) 01背包
查看>>
获取元素样式信息于三中获取方式的区别
查看>>
测试主要环节
查看>>
08-17工作总结
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
基本高精度模板
查看>>
SqlBulkCopy大批量导入数据
查看>>
Windows Workflow Foundation 入门
查看>>
深入V8引擎-默认Platform之mac篇(1)
查看>>
java中的集合collection
查看>>
csrf漏洞
查看>>
关于Duck Typing的性能分析 - Draft
查看>>
time 类
查看>>
在jsp页面内引入c标签
查看>>
水题--莫斯电码翻译,文本加密,九宫格,因式分解
查看>>
微博应用研究【2】
查看>>
POJ 1789 Truck History
查看>>
debug只可遇见不可预见
查看>>