将一个int数组转换为另一个具有lambda

时间:2017-09-13 20:10:06

标签: java arrays lambda

与lambda相同的以下函数是什么?

private String convertWeekDayToBitString(int[] ia) {
    int[] sa = {0, 0, 0, 0, 0, 0, 0};
    for (int i : ia) {
        if (i > 0 && i < 8) {
          sa[i-1] = 1;
        }
    }
    return Arrays.toString(sa).replace("[", "").replace("]", "").trim();
}

此功能的目的是根据输入数组将“星期几”标记为1。例如,如果输入数组为[5,6],则输出应为0,0,0,0,1,1,0

1 个答案:

答案 0 :(得分:0)

您可以使用IntStream流式传输7个值,并检查每个值是否在输入数组中。如果保证输入数组已排序,则可以使用单个语句:

return IntStream
    .range(0, 7)
    .mapToObj(x -> String.valueOf(Arrays.binarySearch(ia, x) >= 0 ? 1 : 0))
    .collect(Collectors.joining(", "));