小编lfr*_*ues的帖子

为什么Groovy的Map比Array更好?

今天我遇到了这个问题,我无法弄清楚为什么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中做了同样的实验: …

java arrays groovy hashmap

10
推荐指数
1
解决办法
700
查看次数

Grails条件查询与fetchMode eager有两个级别

在我的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)

有任何想法吗?

grails hibernate criteria eager

5
推荐指数
1
解决办法
5432
查看次数

Android在ImageView中叠加项目的最佳方式

有关如何在ViewView上叠加View的任何想法?更具体地说,当用户点击我的ImageView的某些区域时,我想要弹出视图.我正在解决这个问题,在onDraw()方法中的图像之后绘制弹出窗口视图,但是当用户在弹出框中单击时处理事件很困难.

提前致谢

android overlay imageview

0
推荐指数
1
解决办法
4858
查看次数

标签 统计

android ×1

arrays ×1

criteria ×1

eager ×1

grails ×1

groovy ×1

hashmap ×1

hibernate ×1

imageview ×1

java ×1

overlay ×1