public Tree<T> filterNew(Filter<Tree<T>> filter) {
		return cloneTree().filter(filter);
	}
@Test
	public void filterNewTest() {
		final Tree<String> tree = TreeUtil.buildSingle(nodeList, "0");

		// 经过过滤，生成新的树
		Tree<String> newTree = tree.filterNew((t) -> {
			final CharSequence name = t.getName();
			return null != name && name.toString().contains("店铺");
		});

		List<String> ids = new ArrayList<>();
		newTree.walk((tr) -> ids.add(tr.getId()));
		assertEquals(4, ids.size());

		List<String> ids2 = new ArrayList<>();
		tree.walk((tr) -> ids2.add(tr.getId()));
		assertEquals(7, ids2.size());
	}