小技巧,年月数据列转行
有时我们要数据列转行
整理成
202103-202104
201909-201909
202103-202103
import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.inter.JyHzUtilService; public class test15 { public static void main(String[] args) { Set<String> set=new HashSet<>(); set.add("202001"); set.add("202003"); set.add("202005"); set.add("202003"); set.add("202004"); set.add("202008"); //set.add("202009"); List<String[]> listmap=setTocols(set); for(String[] aaa:listmap){ System.out.println(aaa[0]+":"+aaa[1]); } } //将[202001, 202003, 202004, 202005, 202008, 202009] //整理为202001-202001 202003-202005 202008-202009 public static List<String[]> setTocols(Set<String> set){ set= JyHzUtilService.setSort(set,"des"); List<String[]> listmap=new ArrayList<>(); String[] str=new String[2]; String aaaup="";//上一个数 int i=0; for(String aaa:set){ if(str[0]== null) { str[0]=aaa;//记录开始时间 aaaup=aaa; }else if((Integer.parseInt(aaa)-Integer.parseInt(aaaup))==1 ||(Integer.parseInt(aaa)-Integer.parseInt(aaaup))==89 ){//连续 aaaup=aaa; }else{//中断 str[1]=aaaup;//记录结束时间 listmap.add(str); str=new String[2];//清空数据 str[0]=aaa; aaaup=aaa; } i++; //最后一条 if(set.size()==i) { if(str[0]!= null && str[1] ==null){ if(aaa.equals(str[0])) str[1]=str[0]; else str[1]=aaa; listmap.add(str); str=new String[2];//清空数据 aaaup=""; } } } return listmap; } }