Collections.EMPTY_LIST返回的是一个空的List。为什么需要空的List呢?有时候我们在函数中需要返回一个List,但是这个List是空的,如果我们直接返回null的话,调用者还需要进行null的判断,所以一般建议返回一个空的List。(编者注:比如,用到list.size(),这个时候会忘记也很麻烦,再判断是否为空。不像循环,肯定会判断是否为空 。所以不要return null,return Collections.EMPTY_LIST这个比较好。EMPTY_LIST的size为0)Collections.EMPTY_LIST返回的这个空的List是不能进行添加元素这类操作的。这时候你有可能会说,我直接返回一个new ArrayList()呗,但是new ArrayList()在初始化时会占用一定的资源,所以在这种场景下,还是建议返回Collections.EMPTY_LIST。
Collections. emptyList()返回的也是一个空的List,它与Collections.EMPTY_LIST的唯一区别是,Collections. emptyList()支持泛型,所以在需要泛型的时候,可以使用Collections. emptyList()。
Collections.EMPTY_MAP和Collections.EMPTY_SET同理。
Collections.EMPTY_LIST的实现代码:
- /**
- * The empty list (immutable). This list is serializable.
- *
- * @see #emptyList()
- */
- @SuppressWarnings("unchecked")
- public static final List EMPTY_LIST = new EmptyList<>();
Collections. emptyList()的实现代码:
- /**
- * Returns the empty list (immutable). This list is serializable.
- *
- * <p>This example illustrates the type-safe way to obtain an empty list:
- * <pre>
- * List<String> s = Collections.emptyList();
- * </pre>
- * Implementation note: Implementations of this method need not
- * create a separate <tt>List</tt> object for each call. Using this
- * method is likely to have comparable cost to using the like-named
- * field. (Unlike this method, the field does not provide type safety.)
- *
- * @see #EMPTY_LIST
- * @since 1.5
- */
- @SuppressWarnings("unchecked")
- public static final <T> List<T> emptyList() {
- return (List<T>) EMPTY_LIST;
- }
测试代码演示:
- import java.util.Collections;
- import java.util.List;
- public class CollectionsTest {
- public static void main(String[] args) {
- List list1 = Collections.EMPTY_LIST;
- System.out.println(list1.size());
- try {
- list1.add(1);
- } catch (Exception e) {
- e.printStackTrace();
- }
- List<Integer> list2 = Collections.<Integer>emptyList();
- System.out.println(list2.size());
- try {
- list2.add(1);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
测试输出:
REFS:http://blog.csdn.net/liyuming0000/article/details/49474659
相关推荐
Java Collections API 是 Java 核心库中的重要组成部分,它提供了丰富的功能来操作和管理各种集合对象,如 List、Set、Map 等。这个API包括许多实用工具类和方法,帮助开发者更高效地处理数据结构。以下是关于Java ...
`Collections`类中提供了一些枚举常量,如`Collections.EMPTY_LIST`、`Collections.EMPTY_MAP`和`Collections.EMPTY_SET`,用于表示空的集合。 6. **集合工具类**: `Collections`类提供了许多静态方法,用于对...
4. 返回空集合:Collections.emptyList() 方法可以返回空集合。 例如: private List fun(List list) { if (list == null || list.size() == 0) { return Collections.emptyList(); } //业务处理 return list;...
9)....Added: EMemLeaks._ReserveOutOfMemory to control reserve size of out of memory errors (default is 50 Mb) 10)..Added: "MinLeaksLimitObjs" option (EMemLeaks unit) 11)..Added: Fatal memory problem ...
最后,Collections工具类还包含一些实用的静态工厂方法,如`emptyList()`、`emptyMap()`和`singletonMap(K key, V value)`,它们分别用于创建空列表、空映射以及只有一个键值对的映射。 总结起来,Collections工具...
7. **新的集合工厂方法**:在`Collections`和`Arrays`类中添加了新的工厂方法,用于创建不可变集合和数组,如`Collections.emptyList()`、`Arrays.asList()`等。 8. **改进的类型推断**:Java 8增强了类型推断能力...
List<String> emptyList = Collections.emptyList(); ``` 4. 匿名内部类 利用匿名内部类可以一次性初始化List,这种方式在代码中看起来比较简洁。 ```java List<String> names = new ArrayList() {{ add("Tom"); ...
8. **集合工厂方法**:Java 1.7对集合框架进行了优化,添加了工厂方法,如`Collections.emptyList()`, `Collections.singleton()`, `Map.of()`, 等,方便创建不可变的集合实例。 9. **元注解的可重复性**:从Java ...
1.1. Arrays 类的常用方法 1.2.1. emptyList()/emptyMap()/emptySet() 方法 1.2.7. synchroniz
1. **多版本选择语法**:允许导入特定版本的库,如`<import static java.util.Collections.emptyList;>`, 提高了代码的可读性。 2. **钻石操作符**:对于匿名类型实例化,如`List<String> list = new ArrayList();`...
创建空集合有多种方法,本文将介绍两种常见的方法:new ArrayList()和Collections.emptyList()。 二、 Java判断集合是否为空 Java判断集合是否为空有多种方法,例如isEmpty()、size()==0、list==null等。这些方法...
return Collections.emptyList(); } } ``` 在这个`ActivityManagerDemo`项目中,可能包含了实现上述功能的示例代码,包括如何请求权限、初始化UsageStatsManager、查询并处理使用统计信息等。通过学习和理解这个...
在Python编程中,数据结构是组织、存储和处理大量数据的关键工具。为了高效地操作数据,程序员经常需要自定义类来封装常见的数据结构,如列表、队列、栈、堆、链表、图等。本篇文章将深入探讨Python中如何通过类封装...
在`Collections`和`Arrays`类中添加了一些静态工厂方法,如`Collections.emptyList()`, `Collections.emptyMap()`等,可以更方便地创建不可变的集合实例。 11. **改进的异常处理**: 允许一个`catch`子句捕获多个...
同样,对于集合(List、Set、Map、Iterator)和其他容器,可以使用`Collections.emptyList()`, `Collections.emptySet()`, `Collections.emptyMap()`等静态工厂方法来返回空实例。 3. **流(Stream)**:对于流,可以...
例如`Collections.unmodifiable*`方法创建的集合和`java.util.Collections`类中的`emptyList()`、`emptySet()`等。这些集合一旦创建就不能修改,因此天然线程安全。 示例代码: ```java import java.util.*; ...
Collections.emptyList()); } } ``` 最后,你可以像操作普通数据库一样,使用SpringDataJPA或MyBatis等ORM框架进行数据操作。Sharding-JDBC会在背后自动处理分库分表和读写分离。 通过以上步骤,你就成功地在...
6. **新的集合工厂方法**:List、Set和Map接口新增了一些静态工厂方法,可以直接创建不可变的集合实例,如Collections.emptyList()、Collections.emptySet()、Collections.emptyMap()。 7. **Optional类**:...
- 集合工厂方法:如`Collections.emptyList()`、`Collections.emptyMap()`等,方便创建空集合。 3. Java 1.6 API中文版: - G1垃圾收集器:一种并行和并发的垃圾回收器,目标是减少垃圾回收的暂停时间。 - 枚举...