【Java】三种不同方式遍历集合

使用三种不同循环遍历List<Student>

请使用多种不同的方式遍历 学生对象集合

  1. 传统 for 循环
  2. 迭代器Iterator
  3. 增强for循环 底层基于迭代器Iterator

示例代码:

Student.java

package com.collection.Demo04;

public class Student {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}

Test07.java

package com.collection.Demo04;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 传统 for 循环
 * 迭代器Iterator
 * 增强for循环 底层基于迭代器Iterator
 */
public class Test07 {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("name1", 32));
        students.add(new Student("name2", 21));
        students.add(new Student("name3", 23));
        //方式1——传统 for循环 遍历集合
        for (int i = 0; i < students.size(); i++) {
            Student student = students.get(i);
            System.out.println(student.getName() + "," + student.getAge());
        }
        //方式2—— 迭代器遍历集合
        Iterator<Student> iterator = students.iterator();
        while (iterator.hasNext()) {
            Student student = iterator.next();
            System.out.println(student.getName() + "," + student.getAge());
        }
        //方式3—— 增强for循环 for each
        for (Student student : students) {
            System.out.println(student.getName() + "," + student.getAge());
        }
    }
}

下一篇文章:泛型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例代码,演示如何在Java中创建并启动三个线程来遍历一个集合: ```java import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); int numThreads = 3; int chunkSize = numbers.size() / numThreads; for (int i = 0; i < numThreads; i++) { int start = i * chunkSize; int end = (i == numThreads - 1) ? numbers.size() : (i + 1) * chunkSize; List<Integer> subList = numbers.subList(start, end); Thread thread = new Thread(() -> { for (Integer number : subList) { System.out.println("Thread " + Thread.currentThread().getId() + ": " + number); } }); thread.start(); } } } ``` 这段代码首先创建了一个包含数字的列表 `numbers`,然后定义了要启动的线程数量 `numThreads`,并计算出每个线程应该处理的元素数量 `chunkSize`。 接下来,通过一个循环来创建并启动每个线程。在循环中,我们根据当前线程的索引计算出要处理的子列表的起始和结束位置,并使用 `subList` 方法获取对应的子列表。 然后,我们创建一个新的线程,并使用Lambda表达式定义线程的执行代码。在这个示例中,线程实际上只是简单地遍历子列表,并打印每个元素。 最后,我们调用 `start` 方法启动线程,使其开始执行。每个线程将独立地遍历其分配的子列表,并在控制台上打印结果。 请注意,由于多线程执行的无序性,打印输出的顺序可能不会按照列表中元素的顺序显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值