如何在java中生成有序序列号

如何在java中生成有序序列号,java,Java,如何在java程序中生成有序的顺序唯一id。 输出应为: 这是样本输出Mys2016vj01在输出中,01应一直增加到今年。2016年后应增加至2017年,以此类推 然后,当年份在恒定vj数之后发生变化时,应将其重置为01 //Initialize it as a static field in the class where you want to generate random number. private static final UniqueParamBuilder UNIQUE_PA

如何在java程序中生成有序的顺序唯一id。 输出应为: 这是样本输出Mys2016vj01在输出中,01应一直增加到今年。2016年后应增加至2017年,以此类推 然后,当年份在恒定vj数之后发生变化时,应将其重置为01

//Initialize it as a static field in the class where you want to generate random number.
private static final UniqueParamBuilder UNIQUE_PARAM_BUILDER = new UniqueParamBuilder();

public String buildNextUniqueNumber() {
     //Params can be final depending on your context.
     String param1 = "Mys";
     String param2 = "vj";

     int year = LocalDateTime.now().getYear();//Java 8. If Java 7, check this


我一点也不知道,所以我发了帖子请过目
     String yearParam = year + "";
     int uniqueNumber = UNIQUE_PARAM_BUILDER.getNext(year);
     String uniqueParam = String.format("%01d", uniqueNumber); //Check this to see how start string with leading zeros.
     String result = param1 + yearParam + param2 + uniqueParam;
     return result;
}

public class UniqueParamBuilder {

    private static final YEAR_TO_START = 2015;
    private static final int START_CONTER = 0;

    private int previousYear = YEAR_TO_START;
    private int counter = START_CONTER ;

    public int getNext(int year) {
        if (year > previousYear) {
             previousYear = year;
             resetCounter();
        }
        counter++;//Start counter with 1.
        return counter;
    }

    private void resetCounter() {
         counter = START_CONTER ;
    }
}