stream
配合线程池使用
public void checkAndProductAuthThread() {
ArrayList<String> lists = new ArrayList<>();
for (int i = 0; i < 101; i++) {
strings.add("AAA" + i);
}
// 线程池 建议使用 项目里配置好的
ExecutorService threadPoolExecutor = Executors.newFixedThreadPool(10);
List<CompletableFuture<Void>> futures = lists.stream()
.map(key -> CompletableFuture.runAsync(() -> {
System.out.println("Thread = " + Thread.currentThread().getName());
}, threadPoolExecutor))
.toList();
// 等待所有任务完成 你也可以不等 主线程继续其他操作 看业务
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]))
.join();
}
控制台结果:
Thread = pool-4-thread-2
Thread = pool-4-thread-1
Thread = pool-4-thread-3
Thread = pool-4-thread-4
Thread = pool-4-thread-5
Thread = pool-4-thread-6
Thread = pool-4-thread-7
Thread = pool-4-thread-8
Thread = pool-4-thread-7
Thread = pool-4-thread-8
Thread = pool-4-thread-8
String
StringUtils.abbreviate
public static void main(String[] args) {
String s = "sadasasdd";
String ss = "我是你爹耶斯莫拉";
String abbreviate = StringUtils.abbreviate(s, 7);
String sa = StringUtils.abbreviate(ss, 6);
System.out.println("abbreviate = " + abbreviate);
System.out.println("sa = " + sa);
}
abbreviate = sada...
sa = 我是你...
截取字符串做一个缩减操作 固定占位符 (...) 站三个宽度 其与宽度自左向右 (maxWidth-3)各元素
如果总长度大于等于 源字符串 name这个而方法就相当于不生效了
mybatis xml映射枚举参数比对
<if test="@com.xxxx.commons.enum.AEnum@aaa== aaa"></if>