Я пытаюсь разобраться с функционалом Java и потоками.
Например, один из способов создания нового объекта с небольшой разницей в имени:
List<NewTopic> topicList = new ArrayList<NewTopic>();
for (Event event : events) {
System.out.println(events.toString());
topicList.add(new NewTopic(event.getName() + "-in", 1, (short) 1));
topicList.add(new NewTopic(event.getName() + "-out", 1, (short) 1));
topicList.add(new NewTopic(event.getName() + "-err", 1, (short) 1));
}
Вместо того, чтобы поместить три объекта в три строки, вложенный l oop с дополнительный массив строк ("in", "out", "err") был бы возможен.
Теперь с потоками возможно что-то вроде этого:
List<NewTopic> topicList = new ArrayList<NewTopic>();
String[] topicNames = {"-in", "-out", "-err"};
events.forEach(
event -> Arrays.stream(topicNames).forEach(
ending -> topicList.add(
new NewTopic(event.getName()
+ ending, 1, (short) 1)
)
)
);
Есть еще элегантный + более короткий способ сделать это?
Спасибо!