Java:将项目“归纳”到列表中
我有一个具有方法(返回不可变列表)的方法,对于我拥有的每个项目,我需要创建一个项目的列表,后跟其子项。Item
List<Item> getChildren()
“缺点”(在Lisp/Scheme意义上)我的项目以创建新的不可变列表的最快方法是什么?我当然可以做以下事情,但它似乎是错误的/浪费的:
public List<Item> 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<Item> items = new ArrayList<Item>();
items.add(item);
items.addAll(item.getChildren());
return Collections.unmodifiableList(items);
}
}