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)!