Java9新特性:集合工厂方法

java9之前我们给集合创建实例的方法如下:

        Set<String> set = new HashSet<>();
        set.add("A");
        set.add("B");
        set.add("C");
        System.out.println(set);

        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        Map<String, String> map = new HashMap<>();
        map.put("A","Apple");
        map.put("B","Boy");
        map.put("C","Cat");
        System.out.println(map);

结果如下:

[A, B, C]
[A, B, C]
{A=Apple, B=Boy, C=Cat}

Java9之后我们可以这样创建实例

        Set<String> set = Set.of("A", "B", "C");
        System.out.println(set);

        List<String> list = List.of("A", "B", "C");
        System.out.println(list);

        Map<String, String> map = Map.of("A", "Apple", "B", "Boy", "C", "Cat");
        System.out.println(map);

        Map<String, String> map1 = Map.ofEntries(
                new AbstractMap.SimpleEntry<>("A", "Apple"),
                new AbstractMap.SimpleEntry<>("B", "Boy"),
                new AbstractMap.SimpleEntry<>("C", "Cat"));
        System.out.println(map1);

结果如下:

[A, C, B]
[A, B, C]
{A=Apple, C=Cat, B=Boy}
{A=Apple, C=Cat, B=Boy}

可以看出代码简化了不少,总结如下:

static <E> List<E> of(E e1, E e2, E e3);
static <E> Set<E>  of(E e1, E e2, E e3);
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3);
static <K,V> Map<K,V> ofEntries(Map.Entry<? extends K,? extends V>... entries)

但是需要注意的是

List与Set的of方法重载了0~10个参数的不同方法和一个以(E... element)作为参数列表的方法

Map的of方法重载了0~10对(键值为一对,所以也是0~20个参数(偶数))参数的不同方法

如果超过10对参数,Map需要使用ofEntries方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值