Возможно, способ перебрать список и присвоить значения соответствующему индексу в массиве как:
IntStream.range(0, li.size())
.forEach(i -> ch[i] = (char) li.get(i).intValue());
или если примитивы не обязательны, то что-то вроде:
Character[] ch = li.stream()
.map(i -> (char) i.intValue())
.toArray(Character[]::new);