Java中list与map的初始化方法

以前用C++常用{值1,值2}的方式直接给list和数组赋值,在Java中不支持,每次还总是忘记,于是记下Java中list和map赋值的几种方式:

1、list

list构造的五种方法及优缺点:   https://www.jianshu.com/p/4c8c0e78061d

以下方法不推荐使用方法2,会存在效率问题

        /**方式1:创建后用 add方法添加值**/
        List<Integer> list0 = new ArrayList<Integer>();
        list0.add(1);
        list0.add(2);

        /**方式2:在创建方法中直接采用add方法添加值**/
        List<Integer> list1 = new ArrayList<Integer>(){
            {
                add(1);
                add(2);
            }
        };
        
        /**方式3: 深拷贝其他数组**/
        List<Integer> list2 = new ArrayList<Integer>(list0);

        /**方式4: 浅拷贝其他数组**/
        List<Integer> list3 = list0;
        
        /**测试**/
        list0.add(3);
        System.out.println("list0="+list0.toString());
        System.out.println("list1="+list1.toString());
        System.out.println("list2="+list2.toString());
        System.out.println("list3="+list3.toString());
        /**
         * 结果:
         * list0=[1, 2, 3]
         * list1=[1, 2]
         * list2=[1, 2]
         * list3=[1, 2, 3]
         */

2、map

        /**方式1:创建后用 put方法添加值**/
        Map<String, Integer> map0 = new HashMap<String, Integer>();
        map0.put("key1",1);
        map0.put("key2",2);

        /**方式2:在创建方法中直接采用put方法添加值 **/
        Map<String, Integer> map1 = new HashMap<String, Integer>(){{
            put("key1",1);
            put("key2",2);
        }};

        /**方式3: 深拷贝其他map **/
        Map<String, Integer> map2 = new HashMap<String, Integer>(map0);

        /**方式4: 浅拷贝其他map **/
        Map<String, Integer> map3=map0;

        /** 测试**/
        map0.put("key3",3);
        System.out.println("map0="+map0.toString());
        System.out.println("map1="+map1.toString());
        System.out.println("map2="+map2.toString());
        System.out.println("map3="+map3.toString());

        /**
         * 结果:
         * map0={key1=1, key2=2, key3=3}
         * map1={key1=1, key2=2}
         * map2={key1=1, key2=2}
         * map3={key1=1, key2=2, key3=3}
         */

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值