首頁 > Java > java教程 > 主體

Java之Map物件複製小例子

黄舟
發布: 2017-01-17 15:16:19
原創
2398 人瀏覽過

提出問題

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 )!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板