相关疑难解决方法(0)

java hashmaps的get()函数

我已经声明了以下hashmap:

HashMap<Integer, Hive> hives
Run Code Online (Sandbox Code Playgroud)

Hive是一个对象.

如果我调用"hives.get(2)",它会在该位置返回对象Hive的副本还是对它的引用?

我的目标是修改该位置的Hive对象.如果它返回引用,我可以修改返回的配置单元并完成.但是,如果返回一个副本,那么我将不得不将该副本放回到hashmap中.

对不起这个简单的问题.我试着寻找一个解决方案,但我看到它的任何地方只是说会返回值,它没有说它是否是值的副本或对它的引用.

谢谢,扎因

java reference object hashmap

16
推荐指数
3
解决办法
1万
查看次数

Java foreach是否会创建副本?

我有一个关于这个foreach的问题:

    for(Element e : nullProof(setOfElements)){
            // do stuff
    }
Run Code Online (Sandbox Code Playgroud)

让我们假设我定义了函数nullProof来返回一个非null的Set(因为我听说你不应该将null传递给一个增强的for循环.这是真的吗?):

    private Set<Element> nullProof(Set<Element> s){
          return s == null ? Collections.<Element> emptySet() : s;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是...... 在foreach中调用nullProof函数是否安全?具体来说,以下标题相当于:

    for(Element e : setOfElements){    //assuming setOfElements != null
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人可以指出一些Java标准,它说这是定义的行为.

此外,有人可以解释这个foreach被称为"幕后"实际发生的事情吗?

假设setOfElements的大小为6.对于通过setOfElements的每次迭代,JVM是否会查找setOfElements 6次,还是创建该组的副本并引用该副本?我试图理解这种行为.谢谢您的帮助!

java foreach jvm

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

标签 统计

java ×2

foreach ×1

hashmap ×1

jvm ×1

object ×1

reference ×1