Java Collections.emptyList() 方法的使用及注意事項

Java Collections.emptyList方法的使用及注意事項

一、emptyList()

  • 作用:返回一個空的List(使用前提是不會再對返回的list進行增加和刪除操作);
  • 好處
    1. new ArrayList()創建時有初始大小,佔用內存,emptyList()不用創建一個新的對象,可以減少內存開銷;
    2. 方法返回一個emptyList()時,不會報空指針異常,如果直接返回Null,沒有進行非空判斷就會報空指針異常;
  • 注意:此List與常用的List不同,它是Collections類裏的靜態內部類,在繼承AbstractList後並沒有實現add()、remove()等方法,所以返回的List不能進行增加刪除元素操作。
  • 示例
 @Test
    public void test1() {
        String str = "";
        List<String> list = getList(str);
        System.out.println(list.size());
    }

    private static List<String> getList(String str) {
        if (StringUtils.isBlank(str)) {
            // 使用時不會報空指針
            return Collections.emptyList();
            // 使用null報空指針異常
//            return null; 
        }
        List<String> list = new ArrayList<String>();
        list.add(str);
        return list;
    }
  • 增刪操作
 @Test
    public void test2() {
        String str = "abc";
        List<String> list = Collections.emptyList();
        list.add(str);
        System.out.println(list.size());
    }
  • 結果:
    在這裏插入圖片描述

如果需要對collections.emptyList()進行增刪操作的話,就需要將collections.emptyList()轉換成ArrayList()進行操作。

  • 示例:
 @Test
    public void test2() {
        String str = "abc";
        List<String> list = Collections.emptyList();
        List<String> resultList = new ArrayList<>(list);
        resultList.add(str);
        System.out.println(resultList.size());
        System.out.println(resultList);
    }
  • 結果:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章