#Springboot定时器重复执行一次,相同数据情况下(插入两次)
#重复检查多次代码没发现问题点,麻烦各位同行指教一下
@Scheduled(cron = "0 0 * * * ?")
//@Scheduled(cron = "0 */1 * * * ?")
public void saveReceiptAdd() throws InterruptedException {
StockParam param=new StockParam();
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
param.setModified_begin(DateUtils.formatDateToString(DateUtils.getCurrent(0, hour-1), DateUtils.DATE_FORMAT_FULL));
param.setModified_end(DateUtils.formatDateToString(DateUtils.getCurrentEnd(0, hour-1), DateUtils.DATE_FORMAT_FULL));
ldMesProduceOrderService.saveReceiptAdd(param.getModified_begin(),param.getModified_end(),1,50);
}
有了数组的下标和数组的长度,我们就可以让数组和for循环结合,使数组进行动态存储和快速遍历的应用。
使用Scanner和for循环输入数组:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入数组长度:");
int num = sc.nextInt();
int[] arr1 = new int[num];
for (int i = 0;i<arr1.length;i++){
System.out.print("请输入数组元素:");
arr1[i]= sc.nextInt();
}
}
此时我们可以使用for循环来遍历数组,也可以使用增强for循环来输出数组。
//遍历输出数组
for (int i = 0;i< arr1.length;i++){
System.out.print(arr1[i]+" ");
}
//增强for
for (int i:arr1){
System.out.print(i+" ");
}
输出结果为:
数组添加
数组的添加要求遍历数组,使用if来找出想要添加的位置,从末尾开始依次向后移动一个下标,最后再把要加入的元素添加进去。
注意在一开始移动末尾元素时要考虑数组越界问题。
数组修改
数组修改则简单的多,只需要遍历数组,找出需要修改的值,将修改的元素赋值给原先元素即可。
注意要考虑数组内可能不存在索要查找的元素。
数组删除
数组删除要求遍历数组,找到需要删除的元素,将要删除元素的后一个下表的元素赋值给当前元素,并且之后的元素依次(从前向后)向前移动一个下标即可,将最后一位设置为空。
注意: arr1.length返回的值是数组的长度 是数组的 最后一个下标+1,注意在for循环中不要出现越界问题。