首页 > 编程语言 >Java中,遍历List集合有以下四种方式

Java中,遍历List集合有以下四种方式

时间:2024-01-29 23:11:25浏览次数:30  
标签:遍历 Java name gender List userList User public String

1.增强for循环(foreach):这种方式是最简单的,也是最易读的。它直接对集合中的每个元素进行操作,不需要额外的迭代器或索引变量。但是,这种方式不能在遍历过程中修改集合的结构(例如添加或删除元素)。

2.使用迭代器:迭代器提供了一种通用的遍历集合的方式,可以在遍历过程中修改集合的结构。但是,使用迭代器需要更多的代码,并且可能不如增强for循环直观。

3.使用ListIterator:ListIterator是迭代器的子接口,提供了在两个方向上遍历列表的能力,以及修改列表元素的能力。这种方式适用于List集合,因为List接口有顺序的概念,允许我们在列表中向前或向后移动。

4.使用toArray方法:将集合转换为数组后,可以使用传统的for循环来遍历。这种方式适用于任何类型的集合,但是需要额外的数组存储空间。

点击查看代码

package com.itheima.javase;

import java.util.*;

public class CollectionDemo1 {
    public static void main(String[] args) {
        Collection<User> userList=new ArrayList<>();

        initUserList(userList);

        traverseUserList(userList);
    }

    private static void traverseUserList(Collection<User> userList) {
        // 使用Lambda表达式遍历并打印用户信息
        userList.forEach(user -> System.out.println(user));

        System.out.println("===================================================");

        // 获取迭代器
        Iterator<User> iterator = userList.iterator();
        // 判断是否有下一个元素
        while(iterator.hasNext()){
            // 获取下一个元素
            User user = iterator.next();
            // 打印用户信息
            System.out.println(user);
        }
        System.out.println("===================================================");

        // 使用增强for循环遍历用户列表
        for(User user: userList){
            // 打印用户信息
            System.out.println(user);
        }

        System.out.println("===================================================");
        // 将用户列表转换为数组
        Object[] objects = userList.toArray();
        // 遍历数组
        for(int i=0;i<objects.length;i++)
            // 打印用户信息
            System.out.println(objects[i]);

        System.out.println("===================================================");

        // 将用户列表转换为ArrayList
        List<User> list = new ArrayList<>(userList);
        // 获取列表迭代器
        ListIterator<User> listIterator = list.listIterator();
        // 判断是否有下一个元素
        while(listIterator.hasNext()){
            // 获取下一个元素
            User user = listIterator.next();
            // 打印用户信息
            System.out.println(user);
        }

        System.out.println("===================================================");
    }

    private static void initUserList(Collection<User> userList) {
        userList.add(new User("张三",25,"男"));
        userList.add(new User("李四",23,"男"));
        userList.add(new User("王五",24,"男"));
        userList.add(new User("赵六",13,"男"));
    }
}

class User{
    private String name;
    private int age;
    private String gender;

    public User() {
    }

    public User(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }
}

标签:遍历,Java,name,gender,List,userList,User,public,String
From: https://www.cnblogs.com/iflytek-aiit319102020329/p/17995563

相关文章

  • Java学习(day1)
    注释单行注释`//publicclass多行注释/*publicclasshellopvsm*/文档注释~~~(没啥用)/**213213**/标识符首字符可以字母、下划线、美元符(不能是数字和其他符号)StringAhello="Q";Stringheloo="Q";String$he="Q";String_hello="Q";大小写敏感......
  • 《实战Java高并发程序设计(第2版)》PDF
    内容简介在单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发变得尤为重要。《实战Java高并发程序设计(第2版)》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java进行并行程序设计的基本方法。第二,进一步详细......
  • [转][Java] 二进制、八进制、十进制、十六进制
    //二进制7System.out.println(0b111);//八进制73System.out.println(0111);//十进制111System.out.println(111);//十六进制273System.out.println(0x111);基本数据类型整数byte、short、int、long浮点数float、double字符  char布尔 boolean......
  • java——ip黑名单设计方案(大全+实战)
    java——ip黑名单设计方案(大全+实战)大家好,今天来设计一个ip黑名单功能。即封禁一些类似ddos的非法ip环境:springboot+jdk11本文源码地址:https://gitee.com/xue-shangren/blog-src/tree/master/java-blacklist-design自定义拦截器思路:将黑名单ip存入一个txt文件中(置于resource......
  • 遍历转树结构
    遍历转树结构{varlist=newList<Foo>{newFoo("111",1),newFoo("112",2),newFoo("113",2),newFoo("114",2),newFoo("115",3),newFoo("116",1),newFoo("......
  • java 判断当前时间是否可以执行
    判断时间privatebooleancanTheTimeExecute(){try{if(StringUtils.isEmpty(containerStockSyncTime)){log.info("[handleContainerStockSyncTask]-executetimeisempty。");returnfalse;}//配置中心按照分钟......
  • java8线上GC问题排查
    问题线上长时间fullGc项目输出了对应的gc日志,启动参数里增加了对应启动参数-verbose:gc-Xloggc:/logs/java_gc.log-XX:+PrintGCDateStamps-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCApplicationConcurrentTime-XX:+PrintHeapAtGC-XX:HeapDumpPath=/logs/java_he......
  • Java编程学习(intellij idea)
    打开IntelliJIDEA新建Project新建Module新建Package输入Package名,enter新建JavaClass在Class中编程......
  • Java删除及下载
    卸载JDK删除JAVA的安装目录删除JAVA_HOME删除path下关于JAVA的目录命令行窗口java-version安装JDK搜索JDK8,找到下载地址同意协议下载电脑对应版本双击安装JDK记住安装路径D:\Environment\java\jdk1.8\配置环境变量我的电脑-->右键-->属性点击高级系统设置在系......
  • List<?extends T>和List<? super T>之间有什么区别?
    表示类型的上界,也就是说参数化的类型可能是T或者T的子类。例如:下面的写法都是合法的赋值语句:![](https://img2024.cnblogs.com/blog/3383899/202401/3383899-20240129203144762-685357479.png)(1)在上面的赋值显示中,对读数据进行分析1)不管给List如何赋值,可以保证List里存放的一......