Java开发基础梳理(一)

119 阅读1分钟

在Java中,经常会有一些重复性的子业务,比如对字符串的处理,对流的处理以及对集合的排序操作,这里总结以下的几类业务场景,在使用的时候可以举一反三,增加业务需求处理效率

list转字符串数组

普通处理方式

String collect = strings.stream().collect(Collectors.joining(","));

Java8处理方式 对象类型

String collect = objects.stream().map(User::getName).collect(Collectors.joining(","));

基本数据类型

String collect = strings.stream().collect(Collectors.joining(","));

Java8大数据量List元素分批切割

业务场景

在Java中会经常进行分批操作,针对一个list数组进行分批,子操作就是将元素进行分批

使用guava

List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8,9,10);
List<List<Integer>> parts = Lists.partition(intList, 3);

手写实现

public static <T> List<List<T>> averageAssign(List<T> source, int n) {
    List<List<T>> result = new ArrayList<>();
    //(先计算出余数)
    int remainder = source.size() % n;
    //然后是商
    int number = source.size() / n;
    //偏移量
    int offset = 0;
    for (int i = 0; i < n; i++) {
        List<T> value;
        if (remainder > 0) {
            value = source.subList(i * number + offset, (i + 1) * number + offset + 1);
            remainder--;
            offset++;
        } else {
            value = source.subList(i * number + offset, (i + 1) * number + offset);
        }
        result.add(value);
    }
    return result;
}

LRU LRU模拟

单例模式DCL

线程池创建&基本状态转换

idea基础快捷键

Java中的反射

元素排序

double类型转int科学计数法避免

draw.io使用