You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ArrayList按年份对数值进行分组的实现需求及示例

按年份分组数值的实现方案

嘿,针对你提出的按年份对数值分组的需求,我给你整理了一个实用的Java实现方案,用Map来动态分组比手动创建多个ArrayList要灵活得多,一起来看看吧!

核心思路

我们可以用Map<String, List<Integer>>来存储分组结果:

  • 键(Key):年份字符串(比如"2015")
  • 值(Value):对应年份下所有数值的ArrayList<Integer>

这样不管后续新增多少个年份,都能自动归类,不用手动创建新的列表。

完整代码示例

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class YearGroupingExample {
    public static void main(String[] args) {
        // 创建用于分组的Map
        Map<String, List<Integer>> yearValueMap = new HashMap<>();

        // 添加你给出的示例数据
        addToGroup(yearValueMap, "2017", 45);
        addToGroup(yearValueMap, "2015", 654);
        addToGroup(yearValueMap, "2015", 19);
        addToGroup(yearValueMap, "2016", 88);
        addToGroup(yearValueMap, "2016", 25);
        addToGroup(yearValueMap, "2015", 45);

        // 获取各年份的分组结果(对应你预期的array1、array2、array3)
        List<Integer> array1 = yearValueMap.get("2015"); // 对应654,19,45
        List<Integer> array2 = yearValueMap.get("2016"); // 对应88,25
        List<Integer> array3 = yearValueMap.get("2017"); // 对应45

        // 打印结果验证
        System.out.println("2015的数值列表:" + array1);
        System.out.println("2016的数值列表:" + array2);
        System.out.println("2017的数值列表:" + array3);
    }

    // 封装添加数据到分组的工具方法
    private static void addToGroup(Map<String, List<Integer>> map, String year, int value) {
        // 如果当前年份还没有对应的列表,就新建一个ArrayList
        map.computeIfAbsent(year, k -> new ArrayList<>());
        // 将数值添加到对应年份的列表中
        map.get(year).add(value);
    }
}

代码解释

  • computeIfAbsent方法:检查Map中是否存在指定年份的键,如果不存在则创建一个新的ArrayList并放入Map,避免了手动判断空值的麻烦。
  • 工具方法addToGroup:把添加数据的逻辑封装起来,让代码更简洁易读。
  • 最终可以通过年份字符串直接从Map中取出对应的数值列表,完全符合你预期的输出效果。

运行结果

2015的数值列表:[654, 19, 45]
2016的数值列表:[88, 25]
2017的数值列表:[45]

内容的提问来源于stack exchange,提问作者Sudhakar kr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:34:57