new Random().ints(200, 1, 200000).boxed().collect(Collector.of(ArrayList::new, ( acc, i ) -> {
if ( acc.size() > 4 )
{
for ( int ctr = acc.size() - 1; ctr >= 0; ctr-- )
{
if ( i > acc.get(ctr) )
{
acc.set(ctr, i);
break;
}
}
}
else
{
acc.add(i);
}
}, (a,b)-> { a.addAll(b); return a;}, Function.identity(), Collector.Characteristics.IDENTITY_FINISH))
.forEach(System.out::println);;
< /code>
Мой вопрос: если мне нужно явно передавать тип параметра коллекционера в метод collector.fo, тогда как это сделать? Ниже код дает ошибку < /p>
Collector.of(ArrayList::new, ( acc, i ) -> {
if ( acc.size() > 4 )
{
for ( int ctr = acc.size() - 1; ctr >= 0; ctr-- )
{
if ( i > acc.get(ctr) )
{
acc.set(ctr, i);
break;
}
}
}
else
{
acc.add(i);
}
}, (a,b)-> { a.addAll(b); return a;}, Function.identity(), Collector.Characteristics.IDENTITY_FINISH)
< /code>
Ошибки < /p>
- Arraylist не может быть разрешен с переменной
Коллекционер не может быть разрешен до переменной < /li> (Army -alce -lectist: arm Lip -lectist: arm Lipe -List: Armail -List: Armail -List -List: Armail Lister -List -List: i) -> {}, (a, b) -> {}, function.identity (),
chollector.characteristics) не определен для типа Streampractise < /li>
Синтаксис -ошибка на токен ",", «Удалить этот токен < /li>
Integer не может быть сведен к варенью < /li>
Integer не может быть сведен к изменению. Решено с переменной - Синтаксическая ошибка на токен ".", удалить этот токен
- ArrayList не может быть разрешен с переменной
Подробнее здесь: https://stackoverflow.com/questions/797 ... -of-method