У меня есть Item
, в котором есть метод List
(который возвращает неизменяемый список) и для каждого из имеющихся у меня элементов , Мне нужно создать список элемента, за которым следуют его дочерние элементы.
Какой самый быстрый способ « cons » (в смысле Lisp / Scheme) мой элемент для создания нового неизменяемого списка? Я, конечно, могу сделать следующее, но это кажется неправильным / расточительным:
public List- getItemAndItsChildren(Item item)
{
if (item.getChildren.isEmpty())
return Collections.singletonList(item);
else
{
// would rather just "return cons(item, item.getChildren())"
// than do the following -- which, although straightforward,
// seems wrong/wasteful.
List
- items = new ArrayList
- ();
items.add(item);
items.addAll(item.getChildren());
return Collections.unmodifiableList(items);
}
}