假设您想要一个方法来返回生成的对象和指示这样做的成功或失败的布尔值.
在某些语言中,比如C,你可能有一个函数通过引用参数返回其他对象,但你不能在Java中这样做,因为Java是"按值传递",那么如何在Java中返回多个对象?
所以我在这里问了另一个相关的问题:带有雪崩效应的java字符串哈希函数,但我现在有一个不同的相关问题.
我在那个问题中建立的是String的hashCode()函数没有雪崩效应.这意味着,例如,如果我有字符串"k1","k2","k3",并且我在每个上调用hashCode(),则返回的值将是连续的.
现在,基于我对数据结构101的回忆,我的印象是这是一件坏事.因为假设HashMap通过算法选择桶,例如:
class HashMap {
private int capacity;
private int chooseBucket(String key) {
return key.hashCode() % capacity;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着类似的密钥存储在连续的桶中,导致更高的冲突率,从O(1)降低大O查询时间到......谁知道有多糟糕......可能比O更差(log n ).
我在第一个问题中得到的答案类型是"这里不需要雪崩效应","它仅用于加密哈希函数",而且"字符串的hashCode实现很快,适用于小型哈希映射".
这让我很困惑.当它们很小时,所有数据结构都很快.Sun是否会提供一个适用于大型数据集的默认hashCode函数?那时候HashMap的表现真的很重要,不是吗?
或者,我错过了什么?请赐教.
如何使用AJAX在我的网站上刷新结果?
<div id="Results">
// Mysql info to show a list of <li>
</div>
Run Code Online (Sandbox Code Playgroud)
我想每10分钟更新一次div.
我目前有一个设置在我的Windows机器上与cygwin我添加我的Linux服务器作为远程源我可以推动我的更改,因为我配置了SSH密钥.
git add remote origin ip@path.git
git push origin
Run Code Online (Sandbox Code Playgroud)
我如何对我的Windows机器这样做就像托管SSH服务器一样简单,如果是这样,你推荐哪一个?
搁置在Python中用于数据持久性线程安全吗?如果没有,有什么好的选择?
如何在不创建窗口的情况下将WPF UserControl呈现到位图?我需要渲染一个WPF UserControl并将其上传到另一个程序.位图将通过Windows服务呈现,因此创建一个窗口不是一个选项(我知道有几种方法'虚拟'创建窗口,但不幸的是,任何调用命令创建窗口的东西都不是我的选择.有没有办法将UserControl RENDER而不将其绑定到Window?
我想更改散列中的每个值,以便在值之前和之后添加'%'
{ :a=>'a' , :b=>'b' }
Run Code Online (Sandbox Code Playgroud)
必须改为
{ :a=>'%a%' , :b=>'%b%' }
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我在Java中开发一种遗传算法,就像所有这些算法一样,需要两条父染色体的交叉.这些染色体可能很长,从30到500不等(但无论它们长度如何,它们都将具有相同的大小,因此如果长度为80,那么GA运行的全部将为80).
我想以不同的方式发展,但他们在我看来都非常低效,所以我想我可能会要求新的,不同的观点和建议.
例如,我想的方式之一是将字符串转换为字符数组和迭代从起点到交叉轨迹(即,从端部的s1 & s2[25]至s1 & s2[40])复制到颞阵列每个阵列的字符的那些点之间和然后再次迭代并使用"伙伴"的时间数组中的字符交换它们.但就像我说的那样,一个拥有大约1000条染色体并且大约1000代的人群的程序似乎非常缓慢.
以下是两点交叉的示例:

还有一个更简单的点交叉:

因为在Java中根本不是很先进,你可以建议我采取什么方法,可能是一个我不知道的Java函数,或者我可以实现的一些算法?