📅  最后修改于: 2023-12-03 15:16:19.281000             🧑  作者: Mango
在Java中,of()方法是一种静态工厂方法,用于创建不可变的集合和Map。它存在于Java 9及更高版本中的List、Set、Map和Stream接口中。
以下是使用of()方法创建不可变List的示例:
List<String> fruits = List.of("apple", "banana", "orange");
System.out.println(fruits);
输出:
[apple, banana, orange]
可以看出,of()方法创建的List是不可变的,不能进行add、remove等操作,若试图这样做则会抛出UnsupportedOperationException异常。
以下是使用of()方法创建不可变Set的示例:
Set<String> cities = Set.of("London", "Paris", "Madrid");
System.out.println(cities);
输出:
[London, Madrid, Paris]
可以看出,of()方法创建的Set也是不可变的,同样不能进行add、remove等操作。
以下是使用of()方法创建不可变Map的示例:
Map<String, Integer> scores = Map.of("Alice", 82, "Bob", 90, "Charlie", 75);
System.out.println(scores);
输出:
{Alice=82, Bob=90, Charlie=75}
注意,of()方法创建的Map只能包含键值对数目为1、2、3、4、5、6,若试图创建超过6个键值对的Map,则需要使用ofEntries()方法或手动创建Map。
以下是使用of()方法创建Stream的示例:
Stream<String> stream = Stream.of("Java", "Python", "C++");
stream.forEach(System.out::println);
输出:
Java
Python
C++
注意,与List、Set、Map不同,of()方法创建的Stream是可变的,可以进行filter、map等操作。但是,建议在不需要改变Stream元素的值时使用of()方法创建Stream,这样可以节省内存。
of()方法是Java集合和Stream API中的一种静态工厂方法,可以用于创建不可变的集合和Map以及可变的Stream。使用of()方法可以简化代码、提高代码可读性,并且避免了手动创建不可变集合和Map的麻烦。