集合框架(一)——Collection集合的遍历方式

一、 Collecton 集合遍历方式

1.迭代器(专门用来遍历集合的,数组没有迭代器,java里面迭代器的代表是Iterator)

public static void main(String[] args) {
    Collection<String> c = new ArrayList<>();
    c.add("1");
    c.add("2");
    c.add("3");
    c.add("4");
    System.out.println(c);

    //使用迭代器遍历集合
    //从集合对象获取迭代器对象
    Iterator<String> it = c.iterator();
    //1. 手动循环
    // System.out.println(it.next());
    //System.out.println(it.next());
    //System.out.println(it.next());
    //如果超出c的长度会报错

    //2. 迭代器遍历
    while (it.hasNext()) {
        String ele = it.next();
        System.out.println(ele);
    }
    //不可以在里面写两次 System.out.println(it.next());
    // 会每次跳过一个判断是否为空 当集合内元素是单数时会报错
}

2. 增强for 循环

  • 格式:for (元素的数据类型 变量名: 数组或集合) { }
  • 增强for可以用来遍历集合或者数组
  • 增强for遍历集合,本质就是迭代器遍历集合的简化写法
  • 快捷写法:集合名称.for
	public static void main(String[] args) {
	    Collection<String> c = new ArrayList<>();
	    c.add("1");
	    c.add("2");
	    c.add("3");
	    c.add("4");
	    System.out.println(c);
	
	    //使用for遍历集合或数组
	    for (String ele : c){
	        System.out.println(ele);
	    }
	
	    String[] names = {"Jam","Sam","java"};
	    for (String name : names) {
	        System.out.println(name);
	    }
	}

3. Lambda表达式遍历集合

  • 需要使用Collection的如下方法完成  default void forEach(Consumer<? super T> action)
	public static void main(String[] args) {
	    Collection<String> c = new ArrayList<>();
	    c.add("1");
	    c.add("2");
	    c.add("3");
	    c.add("4");
	    System.out.println(c);
	
	    //default void forEach(Consumer<? super T> action): 结合Lambda表达式遍历集合
	    c.forEach(new Consumer<String>() {
	        @Override
	        public void accept(String s) {
	            System.out.println(s);
	        }
	    });
	
	    //化简形式
	    c.forEach((String s) -> System.out.println(s));
	
	    c.forEach( s -> System.out.println(s));
	
	    c.forEach(System.out::println);
	}

 

二.  案例:获取电影信息

  • 前提:创建一个Movie类 :
    private String name;
    private double score;
    private String actor;
	public static void main(String[] args) {
	    //创建一个集合容器负责存储多部电影
	    Collection<Movie> movies = new ArrayList<>();
	    movies.add(new Movie("《肖申克的救赎》",9.7,"罗宾斯"));
	    movies.add(new Movie("《霸王别姬》",9.6,"张国荣 张丰毅"));
	    movies.add(new Movie("《阿甘正传》",9.5,"汤姆.汉克斯"));
	    System.out.println(movies);
	
	    for (Movie movie : movies) {
	        System.out.println("电影名是:" + movie.getName());
	        System.out.println("评分:" + movie.getScore());
	        System.out.println("主演:" + movie.getActor());
	        System.out.println("-------------------------------");
	    }
	}

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值