java日常-List、Map初始值


對於List、Set和Map的初始值,對於初學者來說容易混淆,所以在進行為空判斷的時候會容易出錯。為了能更好的使用集合,我總結一下:

一、List的初始值:

先初始化一個List,輸出它的值:

List<Map<String,Object>> list = new ArrayList<>();
System.out.println(list);

輸出結果是:[ ]

也就是說,初始化的List,輸出結果並不是null或者“”,如果用list!=null進行判斷的話,即使list里邊沒有值,但是也一定不是null,所以這種判斷是不准確的。在java API文檔中,List的判斷應該是isEmpty()方法。isEmpty()的解釋是:如果列表不包含元素,則返回 true然而在List中,如果判斷List里邊是否有值,還有size()。size()的解釋是:返回列表中的元素數。所以判斷list中是否有元素的時候,用list.size()>0即可。

//判斷為空
if(list.isEmpty()){}
//判斷有無元素
if(list.size()>0){}
//判斷不為空並且有元素,個人覺得這里只用list.size()>0就可以
if(!list.isEmpty()&&list.size()>0){}

二、Set的初始化

其實Set和List都是繼承自Collection,所以Set和List是一樣的,我就只貼出Set測試的代碼及其輸出值:

Set<String> set = new HashSet<>();
System.out.println("set=" + set);

// 判斷為空
if (set.isEmpty()) {
    System.out.println(true);
}
// 判斷有無元素
if (set.size() > 0) {
     System.out.println(true);
}
// 判斷不為空並且有元素,個人覺得這里只用list.size()>0就可以
if (!set.isEmpty() && set.size() > 0) {
      System.out.println(true);
}

輸出值為:

set=[]
true

三、Map初始值

        //初始化空的map
        Map<String,Object> map = new HashMap<>();
        System.out.println("map="+map);
     System.out.println(map.size());
if(map.isEmpty()){ System.out.println(true); } if(map.size()>0){ System.out.println(true); }

輸出為:

map={}
0
true

這是一個空的Map,它的初始化值是:{},它里邊有0個鍵值對;所以如果判斷Map的值是否有無鍵值對的時候應該用isEmpty()或者是size();

再看一個map里邊有鍵值對的例子,驗證下操作:

        //初始化map,並put上值
        Map<String,Object> map1 = new HashMap<>();
        map1.put("name", "zhangsan");
        map1.put("age", "27");
        
        if(!map1.isEmpty()){
            System.out.println("map1="+map1);
        }
        
        if(map1.size()>0){
            System.out.println("map1.size()="+map1.size());
        }

輸出結果為:

map1={name=zhangsan, age=27}
map1.size()=2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM