前言:
这是一个悲惨的需求, 我不多解析了,记录一下,让我铭记一波, 这段临时代码需求 不优雅
~~~~~小声: 优雅..
设置静态List初始化值 和静态 String类型日期:
public static ArrayList<String> deviceIdList = new ArrayList<String>() { { add("XXXXXX414D32"); add("XXXXXX414C43"); add("XXXXXX9414C09"); add("XXXXXX73941155C"); add("XXXXXX94146A3"); add("XXXXXX3637394146A2"); add("XXXXXX4113C9"); add("XXXXXX113BE"); add("XXXXXX39414CD1"); add("XXXXXX39414CB1"); add("XXXXXX9414C7B"); } }; // 1203之前的交易设备 数据存入重复表 public static String date = "20211203";
对比日期和判断list里面的存储数据
boolean deviceId = deviceIdList.contains(qrCdInfo.getDeviceId()); int compare = date.compareTo(qrCdInfo.getTxnDate()); try { if(deviceId && compare>0){ logger.error("list设备ID查重,存入重复表:" + qrCdInfo.getDeviceId()); repeatList.add(qrCdInfo); continue; }
Contains的用法:
该 contains() 方法内部其实使用 equals() 方法来查找元素。如果指定的元素与数组中的元素有匹配到,则该方法返回 true。否则为false
compareTo的用法:
- 如果参数字符串等于此字符串,则返回值 0;
- 如果此字符串小于字符串参数,则返回一个小于 0 的值;
- 如果此字符串大于字符串参数,则返回一个大于 0 的值。
初始化date值, 跟传入的值 相等 返回0, 如果传入值大于 date值 返回正数(这个正数会变的 ,跟随传值不同),
public static String date ="20211203";public static void main(String[] args) {String date2="20211203"; int compareTo1 = date.compareTo(date2); System.out.println("传入值 对比 初始化date: "+compareTo1);}