java中list集合筛选出本月数据

java中list集合筛选出本月数据

代码说明

运行结果


🎈边走、边悟🎈迟早会好

        在Java中筛选出本月的数据,你可以使用java.time包中的类来处理日期和时间。假设你有一个包含日期字段的List对象集合,你可以利用Stream API来筛选出本月的数据。

下面是一个示例代码,展示如何筛选出本月的数据:

import java.time.LocalDate;
import java.time.YearMonth;
import java.util.*;
import java.util.stream.Collectors;

class Item {
    LocalDate date;
    double value;

    public Item(LocalDate date, double value) {
        this.date = date;
        this.value = value;
    }

    public LocalDate getDate() {
        return date;
    }

    public double getValue() {
        return value;
    }

    @Override
    public String toString() {
        return "Item{" + "date=" + date + ", value=" + value + '}';
    }
}

public class Main {
    public static void main(String[] args) {
        List<Item> data = Arrays.asList(
            new Item(LocalDate.of(2024, 7, 1), 100.0),
            new Item(LocalDate.of(2024, 7, 15), 200.0),
            new Item(LocalDate.of(2024, 6, 20), 300.0),
            new Item(LocalDate.of(2024, 7, 30), 400.0),
            new Item(LocalDate.of(2024, 8, 5), 500.0)
        );

        List<Item> filteredData = filterByCurrentMonth(data);
        filteredData.forEach(System.out::println);
    }
    //筛选方法
    public static List<Item> filterByCurrentMonth(List<Item> items) {
        YearMonth currentMonth = YearMonth.now(); // 获取当前月份
        return items.stream()
            .filter(item -> {
                YearMonth itemMonth = YearMonth.from(item.getDate());
                return itemMonth.equals(currentMonth);
            })
            .collect(Collectors.toList());
    }
}

代码说明

  1. 定义Item

    • 包含字段dateLocalDate类型)和valuedouble类型),以及相应的构造函数和toString方法。
  2. main方法中

    • 创建一个包含多个Item对象的列表data,每个对象都包含一个日期和一个值。
    • 调用filterByCurrentMonth方法进行筛选。
    • 打印筛选后的结果。
  3. 定义filterByCurrentMonth方法

    • 获取当前月份:YearMonth.currentMonth().
    • 使用stream API进行处理:
      • items.stream():将列表转换为流。
      • filter(item -> { ... }):筛选出日期字段的月份与当前月份相同的元素。
        • YearMonth.from(item.getDate()):获取item日期的月份。
        • itemMonth.equals(currentMonth):检查月份是否相同。
      • collect(Collectors.toList()):将筛选后的结果收集到一个新的列表中并返回。

运行结果

        运行上述代码后,输出将包含所有日期在本月的Item对象。例如,如果你在2024年7月运行此代码,输出将是:

Item{date=2024-07-01, value=100.0}
Item{date=2024-07-15, value=200.0}
Item{date=2024-07-30, value=400.0}

 

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的引用内容,我们可以使用Java Stream来筛选Java List集合的对象。以下是几种常见的筛选方法: 方法一: 为了从集合筛选满足特定条件的对象,您可以使用filter()方法。例如,如果您想筛选性别为男性的对象,可以按如下方式操作: ``` List<Student> maleStudents = list.stream() .filter(student -> Objects.equals(student.getSex(), "男")) .collect(Collectors.toList()); ``` 该方法使用filter()方法根据指定的条件进行筛选,并使用collect()方法将结果收集到新的List。 方法二: 如果您想要对筛选结果进行排序,可以使用sorted()方法。例如,按照姓名对性别为男性的对象进行排序: ``` List<Student> sortedMaleStudents = list.stream() .filter(student -> Objects.equals(student.getSex(), "男")) .sorted(Comparator.comparing(Student::getName)) .collect(Collectors.toList()); ``` 该方法先使用filter()方法筛选满足条件的对象,然后使用sorted()方法按照指定的属性进行排序。 方法三: 如果您想要去除重复的对象,可以使用distinct()方法。例如,根据性别去除重复的对象: ``` List<Student> uniqueStudents = list.stream() .distinct() .collect(Collectors.toList()); ``` 该方法使用distinct()方法去除重复的对象,并使用collect()方法将结果收集到新的List。 以上是几种常见的Java List集合对象筛选方法,您可以根据自己的需求选择适合的方法进行使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值