快速創建Map並初始化,超級簡單


開發中經常需要創建Map並初始化,Java沒有通用便捷的方式,需要依賴第三方庫,比如:Guava.
為了Map單獨引用得不償失,而且只能初始化少量數據(大概是6對,自己看源碼)

簡約的工具類

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 快速創建Map
 * @author linyufeng.
 * @date 2021/2/3 10:55
 **/
public class MapHelper extends HashMap implements Serializable {

    public MapHelper() {
    }

    public MapHelper(Object k, Object v) {
        this.add(k, v);
    }

    public static MapHelper of(Object... args) {
        MapHelper map = new MapHelper();
        if (args.length % 2 == 1) {
            throw new RuntimeException("Args must even, Please check params !");
        } else {
            for (int i = 0; i < args.length; i += 2) {
                map.put(args[i], args[i + 1]);
            }
        }
        return map;
    }

    public MapHelper add(Object k, Object v) {
        this.put(k, v);
        return this;
    }
}

使用方式:

// 1.快速創建map
Map m1 = MapHelper.of("name","linyufeng","age", 12);
System.out.println(m1.toString());

// 2.構造創建map
Map m2 = new MapHelper(1,2);
System.out.println(m2.toString());

// 3.鏈式創建map
Map m3 = new MapHelper().add(1,2).add(3,4);
System.out.println(m3.toString());

// 4.混合創建map
Map m4 = MapHelper.of(1,2).add(3,4).add(5,6);
System.out.println(m4.toString());

Map m5 = new MapHelper(1,2).add(3,4).add(5,6);
System.out.println(m5.toString());

結果:

{name=linyufeng, age=12}
{1=2}
{1=2, 3=4}
{1=2, 3=4, 5=6}
{1=2, 3=4, 5=6}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM