List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
String [] strArry= list.stream().toArray(size -> new String[size]);
Сначала список преобразуется в поток строк. Затем он использует Stream.toArray для возврата массива, содержащего элементы потока String. size -> new String [size] »- это функция IntFunction, которая выделяет массив String с размером потока String. Может быть переставлен как
IntFunction<String []> allocateFunc = size -> {
return new String[size];
};
String [] strArry= list.stream().toArray(allocateFunc);