当前位置: 首页 > article >正文

java 给list对象根据给定条数进行分组工具类

java 给list对象根据给定条数进行分组工具类

下面是一个示例的工具类,可以根据给定的条数对Student对象的List进行分组:

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

public class StudentGroupUtil {

    public static List<List<Student>> groupStudents(List<Student> students, int groupSize) {
        List<List<Student>> result = new ArrayList<>();

        int size = students.size();
        int groupCount = (size + groupSize - 1) / groupSize; // 计算分组个数

        for (int i = 0; i < groupCount; i++) {
            int start = i * groupSize; // 计算起始索引
            int end = Math.min((i + 1) * groupSize, size); // 计算结束索引

            List<Student> group = students.subList(start, end); // 获取子列表作为分组
            result.add(group);
        }

        return result;
    }
}

使用示例:

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

public class Main {

    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        students.add(new Student("Alice", 18));
        students.add(new Student("Bob", 20));
        students.add(new Student("Charlie", 22));
        students.add(new Student("David", 24));
        students.add(new Student("Emma", 26));

        List<List<Student>> groups = StudentGroupUtil.groupStudents(students, 2);
        for (List<Student> group : groups) {
            System.out.println("Group:");
            for (Student student : group) {
                System.out.println("Name: " + student.getName() + ", Age: " + student.getAge());
            }
            System.out.println();
        }
    }
}

class Student {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

输出结果:

Group:
Name: Alice, Age: 18
Name: Bob, Age: 20

Group:
Name: Charlie, Age: 22
Name: David, Age: 24

Group:
Name: Emma, Age: 26

http://www.kler.cn/a/291602.html

相关文章:

  • C++ 杨辉三角 - 力扣(LeetCode)
  • 重拾设计模式--建造者模式
  • WPF 使用LibVLCSharp.WPF实现视频播放、停止、暂停功能
  • 呼入机器人:24小时客户服务的未来趋势
  • VMware安装Ubuntu 16.04以及安装好后初步使用配置!
  • 【Web】0基础学Web—随机颜色、数学对象、日期及方法、定时器、倒计时
  • Ai Illustrator 取消吸附到像素点,鼠标拖动的时候只能到像素点
  • 如何给Maven添加阿里云镜像
  • union 的正确食用方法
  • 任务栏透明怎么设置?适配最新版 Windows 电脑的方法介绍(图文教程)
  • 【文献阅读】AdaLora: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning
  • 鸿蒙ndk
  • List 集合指定值升序降序排列Comparator实现
  • JVM系列(八) -运行期的几种优化技术
  • TikTok养号一般养几天?账号起步方法
  • 0.3 学习Stm32经历过的磨难
  • 深度学习系列69:tts技术原理
  • 使用matplotlab绘制多条形图
  • 四、材料与制造工艺 笔记
  • 微深节能 环冷机卸灰小车定位远程控制系统 格雷母线
  • 2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析
  • UE4_后期处理_后期处理材质及后期处理体积二
  • Unity(2022.3.41LTS) - UI详细介绍- Button(按钮)TMP
  • 中间件解析漏洞
  • 【STM32+HAL库】---- 驱动MAX30102心率血氧传感器
  • “论面向服务架构设计及其应用”写作框架,软考高级论文写作,系统架构设计师