标签: set

在Java中获取集合的powerset

powerset {1, 2, 3}是:

{{}, {2}, {3}, {2, 3}, {1, 2}, {1, 3}, {1, 2, 3}, {1}}

假设我有一个SetJava语言:

Set<Integer> mySet = new HashSet<Integer>();
mySet.add(1);
mySet.add(2);
mySet.add(3);
Set<Set<Integer>> powerSet = getPowerset(mySet);
Run Code Online (Sandbox Code Playgroud)

如何以最佳的复杂度顺序编写函数getPowerset?(我想它可能是O(2 ^ n).)

java algorithm set powerset

85
推荐指数
7
解决办法
7万
查看次数

复制设置Java

有没有办法复制TreeSet?也就是说,是否可以去

Set <Item> itemList;
Set <Item> tempList;

tempList = itemList;
Run Code Online (Sandbox Code Playgroud)

或者您是否必须逐个遍历集合并逐个复制它们?

java copy set

80
推荐指数
3
解决办法
10万
查看次数

为什么Python集不能理解'+'?

我想知道为什么这是有效的:

set(range(10)) - set(range(5))
Run Code Online (Sandbox Code Playgroud)

但这不是有效的:

set(range(10)) + set(range(5))
Run Code Online (Sandbox Code Playgroud)

是因为'+'可能意味着交叉和联合吗?

python set

80
推荐指数
6
解决办法
1万
查看次数

如何使用mysql将查询结果存储在变量中

SET @v1 := SELECT COUNT(*) FROM user_rating;
SELECT @v1
Run Code Online (Sandbox Code Playgroud)

当我用set变量执行此查询时,会显示此错误.

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
near 'SELECT count(*) FROM user_rating' at line 1

Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000

(1 row(s) returned)
Execution Time : 00:00:00:343
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:343
Run Code Online (Sandbox Code Playgroud)

mysql database variables set

80
推荐指数
4
解决办法
12万
查看次数

Python dict如何具有相同哈希的多个键?

我试图了解引擎盖下的python哈希函数.我创建了一个自定义类,其中所有实例都返回相同的哈希值.

class C(object):
    def __hash__(self):
        return 42
Run Code Online (Sandbox Code Playgroud)

我只是假设上面的类中只有一个实例可以随时出现在一个集合中,但实际上一个集合可以有多个具有相同散列的元素.

c, d = C(), C()
x = {c: 'c', d: 'd'}
print x
# {<__main__.C object at 0x83e98cc>:'c', <__main__.C object at 0x83e98ec>:'d'}
# note that the dict has 2 elements
Run Code Online (Sandbox Code Playgroud)

我进行了一些实验,发现如果我重写__eq__方法使得类的所有实例比较相等,那么该集只允许一个实例.

class D(C):
    def __eq__(self, other):
        return hash(self) == hash(other)

p, q = D(), D()
y = {p:'p', q:'q'}
print y
# {<__main__.D object at 0x8817acc>]: 'q'}
# note that the dict has only 1 element
Run Code Online (Sandbox Code Playgroud)

所以我很想知道dict有多个具有相同哈希的元素.谢谢!

注意:编辑问题以给出dict(而不是set)的例子,因为答案中的所有讨论都是关于dicts的.但这同样适用于集合; 集合也可以有多个具有相同散列值的元素.

python hash dictionary equality set

79
推荐指数
3
解决办法
3万
查看次数

如何迭代std :: set?

我有这个代码:

std::set<unsigned long>::iterator it;
for (it = SERVER_IPS.begin(); it != SERVER_IPS.end(); ++it)
{
    u_long f = it; // error here
}
Run Code Online (Sandbox Code Playgroud)

没有->first价值.我如何获得价值?

c++ iteration set

79
推荐指数
4
解决办法
18万
查看次数

如何迭代和修改Java集?

假设我有一组整数,我想增加集合中的每个整数.我该怎么做?

我是否允许在迭代时添加和删除集合中的元素?

我是否需要创建一个新的集合,我将"复制和修改"元素,而我正在迭代原始集合?

编辑:如果集合的元素是不可变的怎么办?

java set

78
推荐指数
2
解决办法
27万
查看次数

在JavaScript中创建Set的方法?

在Eloquent JavaScript第4章中,通过创建对象并将值存储为属性名称,将任意值(例如,true)指定为属性值来创建一组值.要检查该值是否已包含在集合中,请使用in运算符:

var set = {};

if (!'Tom' in set) { 
  set.Tom = true;
}
Run Code Online (Sandbox Code Playgroud)

这是惯用的JavaScript吗?不会使用阵列更好吗?

var set = [];

if (!'Tom' in set) { 
  set.push = 'Tom';
}
Run Code Online (Sandbox Code Playgroud)

javascript set

76
推荐指数
6
解决办法
8万
查看次数

如何在MySQL中模拟数组变量?

似乎是MySQL没有数组变量.我应该用什么呢?


似乎有两种选择建议:集类型标量临时表.我联系的问题暗示了前者.但是使用这些而不是数组变量是一种好习惯吗?或者,如果我使用集合,那么基于集合的成语相当于foreach什么?

mysql arrays variables set temp-tables

76
推荐指数
7
解决办法
29万
查看次数

是否可以在接口定义中使用getter/setter?

目前,TypeScript不允许在接口中使用get/set方法(访问器).例如:

interface I {
      get name():string;
}

class C implements I {
      get name():string {
          return null;
      } 
}
Run Code Online (Sandbox Code Playgroud)

此外,TypeScript不允许在类方法中使用Array Function Expression:例如:

class C {
    private _name:string;

    get name():string => this._name;
}
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在接口定义上使用getter和setter?

get interface accessor set typescript

76
推荐指数
2
解决办法
6万
查看次数