2016-03-29 64 views
-2

這很簡單,但我在某個地方感到困惑。String Array Sorting

比方說,我們有string arraysize 5。我們做到了;

array[0]="ted" 
array[4]="barney" 

所以元素是;

{"ted", null, null, null, "barney"} 

如果我使用Arrays.sort,會是怎樣的新位置的new sorted array

1-) barney, ted, null, null, null 

2-) null, null, null, barney, ted 

3-) barney, null, null,null, ted 

哪一個?

非常感謝。

+2

你爲什麼不試試看? – Guy

+3

這可以很容易地由你自己測試。不是? –

+0

你對此感興趣嗎? – Andrew

回答

2
java.lang.NullPointerException 
at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source) 
at java.util.ComparableTimSort.sort(Unknown Source) 
at java.util.Arrays.sort(Unknown Source) 

,因爲當你有這樣的簡單檢驗的問題,有一個答案的最佳途徑字符串和NULL不是相互媲美

0

是給自己一個新的空項目運行代碼。

並回答你的問題,其結果將是一個NullPointerException異常,因爲null不是一個可比

0
Arrays.sort(myArray, new Comparator<String>() { 
    @Override 
    public int compare(String o1, String o2) { 
     if (o1 == null && o2 == null) { 
      return 0; 
     } 
     if (o1 == null) { 
      return 1; 
     } 
     if (o2 == null) { 
      return -1; 
     } 
     return o1.compareTo(o2); 
    }}); 

這是你如何排序,並得到結果:巴尼,泰德,NULL,NULL,空值。否則你會得到一個空指針異常。