假设我的应用程序中有这种类型:
public class A {
public int id;
public B b;
public boolean equals(Object another) { return this.id == ((A)another).id; }
public int hashCode() { return 31 * id; //nice prime number }
}
Run Code Online (Sandbox Code Playgroud)
和一个结构.现在,我有一个类型的对象,并希望执行以下操作:Set<A>A
A在集合中,请更新其字段b以匹配我的对象.所以检查它是否在那里很容易(contains),并且添加到集合也很容易.我的问题是:如何获得更新对象的句柄?接口Set没有get方法,我能想到的最好的方法是删除集合中的对象并添加我的对象.另一种,更糟糕的是,替代方法是使用迭代器遍历集合以尝试定位对象.
我很乐意接受更好的建议......这包括有效使用其他数据结构.
Yuval = 8-)
编辑:谢谢大家回答...不幸的是我不能'接受'这里的最佳答案,建议使用a Map,因为为此目的而根本改变集合的类型只会有点极端(这个集合是已经通过Hibernate映射...)
请考虑以下代码:
$("a").attr("disabled", "disabled");
Run Code Online (Sandbox Code Playgroud)
在IE和FF中,这将使锚点无法点击,但在基于WebKit的浏览器(谷歌浏览器和Safari)中,这没有任何作用.disabled属性的优点在于它很容易被删除,并且不会影响href和onclick属性.
您对如何获得所需结果有任何建议吗?答案必须是:
如果替代函数名称使API更明显,放弃getter和setter的"getMyValue()"和"setMyValue()"模式是否合适?
例如,假设我在C++中有这个类:
public class SomeClass {
private:
bool mIsVisible;
public:
void draw();
void erase();
}
Run Code Online (Sandbox Code Playgroud)
我可以添加函数来获取/设置"mIsVisible",如下所示:
bool getVisible() { return mIsVisible; };
void setVisible(bool visible) {
if (!mIsVisible && visible) {
draw();
} else if (mIsVisible && !visible) {
erase();
}
mIsVisible = visible;
Run Code Online (Sandbox Code Playgroud)
}
Run Code Online (Sandbox Code Playgroud)
但是,同样可以使用以下方法:
bool isVisible() { return mIsVisible; };
void show() {
if (!mIsVisible) {
mIsVisible = true;
draw();
}
}
void hide() {
if (mIsVisible) {
mIsVisible = false;
erase();
}
}
Run Code Online (Sandbox Code Playgroud)
简而言之,有一个"setVisible(bool)"方法,还是一对"show()"和"hide()"方法更好?有会议,还是纯粹主观的?
我使用第三方工具输出Unicode格式的文件.但是,我更喜欢它是ASCII.该工具没有更改文件格式的设置.
使用Python转换整个文件格式的最佳方法是什么?
每隔一段时间,我就必须在我编写的大部分代码(无论是工作还是播放)之间切换语言.我发现C++是那些需要大量心理缓存空间的语言之一,所以如果我从中休息一段时间,那么我会忘记很多细节.即使是像将项目添加到一个STL容器,或使用的东西static在不同的上下文中存储的关键字得到所有混乱的("是add,append,push...哦,这是push_back").
那么当你编写C++时,你喜欢什么基本的花絮加载到你的大脑中?
编辑:我应该说,我希望能够为此页面添加书签并将其用作我的备忘单:)
我的公司最近成为了微软认证合作伙伴,从业务角度来看,它极大地帮助了我们,因为它提供了以更具成本效益的方式继续开发所需的软件许可,以及营销能力的额外好处.
现在,我知道微软认证合作伙伴的地位对许多客户来说很重要,但从开发人员的角度来看,作为一名.NET开发人员,在选择一个可能适用的组织时,您会想到这一点吗?它是否被视为一种好处,您至少知道该组织可以访问该工作所需的工具?
我正在尝试创建一个自定义控件,即"gridview",如控件,但特别是对于实现某些自定义接口的业务对象.
在这样做时,我遇到了以下问题.
我有一个控件,我已禁用viewstate(我不想重新启用它),它有一个我想要启用viewstate的子控件.因为父母被禁用,我似乎无法让子控件上的视图状态工作.有没有人有任何想法如何让它工作?
该的AssemblyVersion和的AssemblyFileVersion属性是处理版本号为.NET程序集的内置方式.虽然框架提供了自动确定版本号(构建和修订,在Microsoft术语中)中最不重要部分的能力,但我发现这种方法相当薄弱,而且毫无疑问还有许多其他方法.
所以我想问一下,有哪些方法可以确保最好地使用更好地反映项目实际版本的版本号?您是否有预构建脚本将版本的一部分设置为日期和时间,或者是项目工作副本的存储库版本?您是否只使用框架提供的自动生成?或者是其他东西?管理汇编/文件版本控制的最佳方法是什么?
是否有任何替代存储过程,安全,快速以及存储过程.我只知道Hibernate.还有其他类似的技术吗?
我正在编写软件合成器,需要以44.1 kHz采样率实时生成带限,无别名波形.Sawtooth波形现在可以做,因为我可以通过将两个锯齿波混合在一起产生脉冲波,一个是倒置的并且相移.
到目前为止,我尝试了以下方法:
在启动时以不同的频带限制频率预先计算一个周期完美的带限波形样本,然后播放混合在一起的两个最接近的波形样本.工作正常我猜,但感觉不是很优雅.需要大量样本或者听到它们之间的"间隙".插值和混合也是CPU密集型的.
整合一系列DC补偿sinc脉冲以获得锯齿波.听起来不错,除非你没有得到完全正确的DC补偿(我发现它非常棘手),波浪会从零偏离.通过向积分器添加一点泄漏可以减少DC问题,但随后会丢失低频.
所以,我的问题是:通常的做法是什么?对于CPU而言,任何建议的解决方案都必须是高效的,因为必须立即对许多声音进行实时完成.