【发布时间】:2016-09-28 18:01:47
【问题描述】:
我需要创建将返回数组列表排列的方法。我使用了this 方法,但它返回List<List<T>>,我需要获取Set<Set<T>> 类型。谁能帮我实现这个目标?
编辑:我试过了:
public Set<Set<T>> permute() {
List<List<T>> tmp = generatePerm(this);
Set<Set<T>> tmpSet = new HashSet<>();
for (List<T> el : tmp){
tmpSet.add(new HashSet<T>(el));
}
return tmpSet;
}
但它只返回一个排列。
解决方案:
好的,我明白了。这个方法在扩展 ArrayList 的类中,所以我简单地将 Set<T> 实现到这个类,并将这个方法的返回类型更改为 XList<Set<T>> 并且它起作用了。
【问题讨论】:
-
问题实际上是Set的实现和目的。例如,HashSet 没有重复项,也没有排序。因此,您排列的所有 HashSet 彼此相等。这就是为什么你的结果(在你的样本中)只有一个排列。
-
但这是我大学的一项任务,所以必须有一种方法来完成它。我无法更改返回类型。
标签: java arrays set permutation