Map的操作

4.Map的操作

public static void main(String[] args) {
        Map<String, String> parMap = new HashMap<String, String>();
        parMap.put("yezi1", "111");
        parMap.put("yezi2", "222");
        parMap.put("yezi3", "333");
        getUser(parMap);
        System.out.println(parMap.toString());
    }
    private static void getUser(Map<String, String> params) {
        params.put("test", "1");
    }

以上代码中parMap初始化三个key-value,然后去调getUser()方法,getUser()方法中又添加了个key-value,但没有return操作。

接下来打印该parMap,输出是什么呢,有“test-1”这个key-value吗?

输出结果:{yezi3=333, test=1, yezi1=111, yezi2=222}

总结:一个Map对象作为参数在另外的方法体里做了相关操作,那么无需return该操作后的Map对象,原方法里使用这个map已经是修改后的map,这个跟Map存储的堆栈有关系,虽然是在另外方法里做了修改,但操作的是同个堆栈存储,所以这里不需要return亦可。

1.扩展:

那么在其他集合对象里也适用吗,我们来试试List:

public static void main(String[] args) {
    List<String> parList = new ArrayList<String>();
    parList.add("a");
    parList.add("b");
    parList.add("c");
    getUser(parList);
    System.out.println(parList.toString());
}
private static void getUser(List<String> params) {
    params.add("test");
}

输出结果:[a, b, c, test]

如此,在List也是适用的

在collection集合容器中都是适用的。。。

2.扩展:

DTO中适用吗,创建个User对象,先设置好User的属性,然后在另外个方法去修改它,而不返回这个对象,看输出什么?

public static void main(String[] args) {
    User user = new User();
    user.setAge("30");
    user.setName("yezi");
    user.setSex("男");
    setUser(user);
    System.out.println(user.toString());
}
private static void setUser(User user) {
    user.setAge("29");
}

输出结果:User [name=yezi, age=29, sex=男]

在DTO中也是适用的。

posted @ 2018-09-10 19:47  jasonbean  阅读(132)  评论(0编辑  收藏  举报