• List集合五种遍历方式


    List集合五种遍历方式

    1、Iterator接口 —— java集合中一员

    (1)包:java.util.Iterator

    (2)功能:主要用于迭代访问(遍历)Collection中的元素

    Iterator对象称为迭代器

    (3)方法:

    public E next():返回迭代的下一个元素。

    public boolean hasNext():如果仍有元素可以迭代,则返回true

    2、普通for循环遍历(类似于数组遍历)

    3、增强for

    ​ 增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。

    ​ 它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

    4、List集合自有迭代器

    List 集合额外提供了一个 listIterator()方法,该方法返回一个 ListIterator对象, ListIterator接口继承了 Iterator接口

    ListIterator<E> listIterator(int index)返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。指定的索引表示 next 的初始调用所返回的第一个元素。previous 方法的初始调用将返回索引比指定索引少 1 的元素。

    ​ 参数index-- 从列表迭代器返回的第一个元素的索引(通过调用 next 方法)

    5、Lambda

    ​ Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda`表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。

    格式:

    (parameters) -> expression(parameters) ->{ statements; }

    		//使用多态方式创建对象
    		List<String> list = new ArrayList<>();
    		//添加元素到集合
    		list.add("派大星");
    		list.add("海绵宝宝");
    		list.add("章鱼哥");
    		list.add("蟹老板");
    		
    		//输出集合看一下
    		System.out.println(list);
    		
    		//1、使用Iterator接口遍历
    		Iterator<String> it = list.iterator();
    		while(it.hasNext()){//判断是否有迭代元素
    			System.out.println(it.next());//输出迭代出的元素
    		}
    		
    		System.out.println("=============================");
    		
    		//2、普通for循环遍历
    		for(int i = 0; i < list.size(); i++){
    			//通过get方法传递索引获取集合元素
    			System.out.println(list.get(i));
    		}
    		System.out.println("=============================");
    		
    		//3、增强for
    		for(String a : list){
    			System.out.println(a);
    		}
    		
    		System.out.println("=============================");
    		
    		//4、List集合自带迭代器
    		ListIterator<String> listli = list.listIterator();
    		while(listli.hasNext()){
    			System.out.println(listli.next());
    		}
    		
    		System.out.println("=============================");
    		
    		//5、Lambda
    		list.forEach(
    				item -> System.out.println(item)
    				);
    		
    
  • 相关阅读:
    WordCount项目基本功能
    让自己的头脑极度开放
    Docker安装Mysql5.7
    MySQL中的函数索引(Generated Column)及一次SQL优化
    关于老系统的重构和优化选择
    JIRA笔记(一):安装部署JIRA
    Jenkins 配置GitLab插件和Git插件
    Loading descriptor for XXX.'has encountered a problem' A internal error occured during:"Loading ....."
    Newton插值的C++实现
    Lagrange插值C++程序
  • 原文地址:https://www.cnblogs.com/iris-/p/13446444.html
Copyright © 2020-2023  润新知