Я нахожусь в последней части моего задания и нахожусь в ловушке. Мне нужно преобразовать приведенный ниже код в оператор Lambda, используя метод потока класса InputData, а также цикл forEach, который имеет тот же эффект, что и текущий цикл. Для метода stream я думал об использовании ... inputData.stream(). ForEach (значения -> .... только внутри блока try, но я не могу понять остальную часть синтаксиса для цикла forEach. кто-то мне точку в правильном направлении? Спасибо!Lambda Входной файл в массив
private List<AreaData> readInput(String filename) throws IllegalStateException,
NumberFormatException
{
/* This statement uses the "diamond" operator, since it is possible for
the compiler to work out the required generic type. */
final List<AreaData> result = new LinkedList<>();
try(InputData inputData =
new InputData(filename, InputData.class, null,
Field.values().length, ","))
{
/* Iterate through each of the lines of values. */
for(String[] values : inputData)
{
/* Create a new AreaData object, and add it to the list. */
AreaData next = new AreaData(values);
result.add(next);
}
}
return result;
}
Спасибо за ответ. К сожалению, назначение вызывает цикл forEach, который будет использоваться. – TheDude76
@ TheDude76 Я отредактировал свой ответ; если что-то еще неясно, дайте мне знать. –
ZouZou Еще раз спасибо за ваш ответ. Я вижу, как использование операции с картой было бы намного проще. Этот цикл forEach действительно не имеет особого смысла в этой ситуации. Тем не менее, forEach - это то, что вызывается :) для этого, я бы использовал операцию Collector после result.add? – TheDude76