Java 高效生成按指定间隔连续递增的列表(int,double)


简介

Java 按照指定间隔生成连续递增的List 列表(引入Stream 类和流操作来提高效率):


1. 生成递增的List< Integer>

    @Test
    public void test009(){
        int start = 1;
        int interval = 2;
        int count = 10;
        List<Integer> list = IntStream.iterate(start, n -> n + interval)
                .limit(count)
                .boxed()
                .collect(Collectors.toList());
        System.out.println(list);
    }

在这里插入图片描述

2. 生成递增的List< Double>

    @Test
    public void test008(){
        double start = 0.0; // 起始值
        double interval = 0.5; // 间隔
        int count = 10; // 生成数量
        List<Double> list = DoubleStream.iterate(start, n -> n + interval)
                .limit(count)
                .boxed()
                .collect(Collectors.toList());
        System.out.println(list);
    }

在这里插入图片描述


总结

啊吧啊吧…

以下是一个Java程序,实现了按照格式XC YY 000000001生成递增编号,并按照年份进行重置。 ```java import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class IncrementalNumberGenerator { private static final String FORMAT = "XC YY %09d"; private static final int RESET_YEAR = LocalDate.now().getYear(); private static int currentYear = RESET_YEAR; private static int currentNumber = 0; public static String generate() { LocalDate now = LocalDate.now(); if (now.getYear() != currentYear) { currentYear = now.getYear(); currentNumber = 0; } currentNumber++; return String.format(FORMAT, currentNumber); } public static void main(String[] args) { System.out.println(generate()); // XC YY 000000001 System.out.println(generate()); // XC YY 000000002 System.out.println(generate()); // XC YY 000000003 LocalDate nextYear = LocalDate.parse((RESET_YEAR + 1) + "-01-01", DateTimeFormatter.ISO_DATE); while (LocalDate.now().isBefore(nextYear)) { System.out.println(generate()); // 模拟跨年 } System.out.println(generate()); // XC YY 000000001 } } ``` 这个程序定义了一个静态变量`FORMAT`表示编号的格式,`RESET_YEAR`表示重置的年份。`currentYear`和`currentNumber`表示当前的年份和编号。 `generate`方法首先获取当前的日期,如果当前年份与`currentYear`不同,说明已经跨年,需要重置编号,将`currentYear`设置为当前年份,将`currentNumber`设置为0。然后将`currentNumber`递增,使用`String.format`将其格式化为指定的格式,返回生成的编号。 程序的`main`方法测试了多次调用`generate`方法,模拟了跨年的情况,验证了编号的生成和重置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值