小编leo*_*ame的帖子

如果树集对象改变其值(树集的最佳实践?)会怎样?

List list = new ArrayList();
MyObj mine = new MyObj();
list.add(mine); 
Run Code Online (Sandbox Code Playgroud)

我喜欢在操作对象之前将对象添加到列表中,这样我以后就不会忘记添加它,可能是我在疯狂的浓缩逻辑中工作,我喜欢这样的方式

mine.setXXX(stuff);
Run Code Online (Sandbox Code Playgroud)

这是我一直用来在列表中添加对象的方式,

刚才我有一个TreeSet更有意义的用例,所以我自然想做这样的事情: -

Set set = new TreeSet();
MyObj mine = new MyObj();
set.add(mine);
mine.setXXX(stuff); // add setters here
Run Code Online (Sandbox Code Playgroud)

但是这里的问题是在将对象添加到列表之前Treeset需要在compareTo方法中使用变量进行初始化.

好的,我可以照顾它.

但我的担忧和问题是: - 有没有办法可以强制开发人员可能正在使用我的模型,而我以前Treeset不会重复我的错误.即myObject在将对象添加到集合之前,让它们引发变量.虽然开发人员应该知道这一点,并且应该照顾它,但仍然有办法迫使它或一些最佳实践.

java treeset

2
推荐指数
1
解决办法
1334
查看次数

Cassandra CQL where子句有多个集合值?

我的数据模型: -

tid                                  | codes        | raw          | type
-------------------------------------+--------------+--------------+------
a64fdd60-1bc4-11e5-9b30-3dca08b6a366 | {12, 34, 53} | {sdafb=safd} |  cmd

CREATE TABLE MyTable (
tid       TIMEUUID,
type      TEXT,
codes     SET<INT>,
raw       TEXT,
PRIMARY KEY (tid)
);
CREATE INDEX ON myTable (codes);
Run Code Online (Sandbox Code Playgroud)

如何查询表以基于多个设置值返回行.

这有效: -

select * from logData where codes contains 34;
Run Code Online (Sandbox Code Playgroud)

但是我希望根据多个设置值获取行,但这些都不起作用: -

select * from logData where codes contains 34, 12; or 
select * from logData where codes contains 34 and 12; or
select * from logData where codes …
Run Code Online (Sandbox Code Playgroud)

cql cassandra cql3 cassandra-2.1

2
推荐指数
1
解决办法
5398
查看次数

标签 统计

cassandra ×1

cassandra-2.1 ×1

cql ×1

cql3 ×1

java ×1

treeset ×1