今天我遇到了这个问题,我无法弄清楚为什么groovy数组在变大时不会比Map更好.
在我的示例中,我创建了一个Map(LinkedHashMap)和一个String数组(String []).然后我从0迭代到10 ^ 7,将i插入Map或Array.我做了10次,以确保异常值不会弄乱结果.
int max = 10**7
int numTests = 10
long totalTimeMap = 0
long totalTimeArray = 0
numTests.times{
long start = System.currentTimeMillis()
Map m = [:]
max.times {
m[it] = "${it}"
}
long end = System.currentTimeMillis()
totalTimeMap += (end-start)
}
numTests.times {
long start = System.currentTimeMillis()
String[] s = new String[max]
max.times{
s[it] = "${it}"
}
long end = System.currentTimeMillis()
totalTimeArray += (end-start)
}
println "Map: ${totalTimeMap}"
println "Array: ${totalTimeArray}"
Run Code Online (Sandbox Code Playgroud)
由于Map具有比Array更好的性能,因此输出是意外的:
Map: 49361
Array: 101123
Run Code Online (Sandbox Code Playgroud)
我在java中做了同样的实验: …
在我的Grails项目中,我有以下类:
class A {
static hasMany = [cs:C]
}
class B {
static hasMany = [cs:C]
}
class C {
static belongsTo = [a:A, b:B]
}
Run Code Online (Sandbox Code Playgroud)
我想查询A类并急切地带来B和C的所有关联.我尝试了以下条件查询,但是当我从A迭代Cs时,hibernate使用延迟初始化来查询B对象.
A.withCriteria() {
fetchmode "cs", FetchMode.JOIN
fetchMode "cs.b", FetchMode.JOIN
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
有关如何在ViewView上叠加View的任何想法?更具体地说,当用户点击我的ImageView的某些区域时,我想要弹出视图.我正在解决这个问题,在onDraw()方法中的图像之后绘制弹出窗口视图,但是当用户在弹出框中单击时处理事件很困难.
提前致谢