当前位置:首页 > JAVA教程 > JAVA基础

Java 9 集合工厂方法

java 9 集合工厂方法

java 9 list,set 和 map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。

这些工厂方法可以以更简洁的方式来创建集合。

旧方法创建集合

实例

import java.util.arraylist;import java.util.collections;import java.util.hashmap;import java.util.hashset;import java.util.list;import java.util.map;import java.util.set; public class tester { public static void main(string []args) { set<string> set = new hashset<>(); set.add("a"); set.add("b"); set.add("c"); set = collections.unmodifiableset(set); system.out.println(set); list<string> list = new arraylist<>(); list.add("a"); list.add("b"); list.add("c"); list = collections.unmodifiablelist(list); system.out.println(list); map<string, string> map = new hashmap<>(); map.put("a","apple"); map.put("b","boy"); map.put("c","cat"); map = collections.unmodifiablemap(map); system.out.println(map); } }

执行输出结果为:

[a, b, c]
[a, b, c]
{a=apple, b=boy, c=cat}

新方法创建集合

java 9 中,以下方法被添加到 list,set 和 map 接口以及它们的重载对象。

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 个参数的不同方法 。

  • map 接口, of(...) 方法重载了 0 ~ 10 个参数的不同方法 。

  • map 接口如果超过 10 个参数, 可以使用 ofentries(...) 方法。

新方法创建集合

实例

import java.util.arraylist;import java.util.collections;import java.util.hashmap;import java.util.hashset;import java.util.list;import java.util.abstractmap;import java.util.map;import java.util.set; public class tester { public static void main(string []args) { 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, b, c]
[a, b, c]
{a=apple, b=boy, c=cat}
{a=apple, b=boy, c=cat}

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!