如何转换List <list <t>&gt;设置<set <t>&gt;?

时间:2016-05-30 20:57:16

标签: java arrays set permutation

我需要创建一个返回arraylist排列的方法。我使用了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;
    }

但它只返回一个排列。

SOLUTION:

好的,我明白了。此方法在扩展ArrayList的类中,因此我只是将Set<T>实现到此类,并将此方法的返回类型更改为XList<Set<T>>并且它有效。

1 个答案:

答案 0 :(得分:0)

你不能这样做,因为一个集实际上是一个无序列表(Collection)。而且,创建排列需要订单。因此,即使我们假设这是可能的,您每次都会得到相同的集合,因此您将拥有n个等效集合。