从地图中获取HashSet并更改后,我是否必须将其放回去?

noi*_*rcc 0 java map pass-by-reference

它的工作原理如下:

Set<Integer> nums = numMap.get(id);
nums.add(new Integer(0));
// now do i have to:
numMap.put(id,nums)?
// or is it already stored?
Run Code Online (Sandbox Code Playgroud)

问候&& tia noircc

ada*_*shr 5

除非你深入克隆它,否则你不必把它放回去.一切都基于Java中的引用.

您总是可以通过编写一个简单的程序来测试它.

public static void main(String... args) {
    Map<Integer, Set<Integer>> numMap = new HashMap<Integer, Set<Integer>>();

    Set<Integer> set = new HashSet<Integer>();
    set.add(10);

    numMap.put(0, set);

    System.out.println("Map before adding is " + numMap);

    set.add(20);

    System.out.println("Map after adding is " + numMap);
}
Run Code Online (Sandbox Code Playgroud)

哪个打印

Map before adding is {0=[10]}
Map after adding is {0=[20, 10]}
Run Code Online (Sandbox Code Playgroud)