首頁  >  文章  >  Java  >  Java之Map物件複製小例子

Java之Map物件複製小例子

黄舟
黄舟原創
2017-01-17 15:16:192351瀏覽

提出問題

Map物件的簡單複製問題? ? ? ?

解決問題

例一:map物件引用複製,只是簡單的引用,解決不了問題

[code]package com.evada.de;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Ay on 2016/5/11.
 */
public class RedisTest {

    public static void main(String[] args) {

        Map<String,String> mapAA = new HashMap<>();
        mapAA.put("A", "A");
        mapAA.put("AA","AA");
        mapAA.put("AAA","AAA");
        System.out.println(mapAA);
        //用mapBB对象去引用mapAA
        Map<String,String> mapBB = mapAA;

        mapBB.put("B","B");

        System.out.println(mapBB);
    }
}

結果:

[code]{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA, B=B}

例二:Map中的putAll實現簡單類型的複製

reee

結果:範例三:map中putAll只是淺複製

[code]package com.evada.de;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Ay on 2016/5/11.
 */
public class RedisTest {

    public static void main(String[] args) {

        Map<String,String> mapAA = new HashMap<>();
        mapAA.put("A", "A");
        mapAA.put("AA","AA");
        mapAA.put("AAA","AAA");
        System.out.println(mapAA);

        Map<String,String> mapBB = new HashMap<>();
        //把mapAA的元素复制到mapBB中
        mapBB.putAll(mapAA);
        mapBB.put("B","B");
        //打印出的mapAA应该不受影响
        System.out.println(mapAA);
        //打印出的mapBB应该多了元素B
        System.out.println(mapBB);
    }
}

結果:從結果可以看出,印出mapAA 和mapBB,結果是一樣的,說明putAll的複製自己簡單的淺複製, 

從最後一個結果,可再一次驗證,因為改變了mapBB中A元素的值,直接影響mapAA中元素的值

[code]{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA, B=B}

以上就是Java之Map物件複製小例子的內容,更多相關內容請關注PHP中文網(www.php.cn )!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn