我在Android開發中遇到的一些問題

轉載請註明來源:http://blog.csdn.net/kjunchen/article/details/51553707

自己在開發中遇到的一些常見的小問題,記錄下來方便查。

1、關於List.remove()與List.subList()

1/20/2016 3:15:20 PM

最近在項目中發現,當非常頻繁地調用List.subList()時,就會產生java.lang.StackOverflowError(棧溢出)異常,想了好長時間都沒有解決,不用嗎又不行,需求所致,最後就像,既然截取不行那就刪嘛,因此我就使用remove()方法試了試,結果問題就這麼給解決了,真的是fun,困擾了我好長時間。

當List中的數據很簡單時,remove()比subList()快,而在我的項目中,由於List中的數據稍複雜點,量又比較大,測得remove()比subList()慢。

現在假設List中有20個數據,需要去掉前面10個數據而保留11~20的數據,採用如下兩種方式,最後所得的結果都是一樣的。

int subLength = 10;//Remove the first 10
//One
mList = mList.subList((mList.size() - subLength), mList.size());

//Two
for (int i = (subLength - 1); i >= 0; i--) {
    mList.remove(i);
}

如果你有遇到這樣的問題,可以嘗試下看能否解決問題,如有更好的方式解決,請給我留言或Email: [email protected]


2、關於setResult()調用問題

調用setResult()必須在finish()之前,在onPause()、onStop()、onDestroy()中調用無作用。


3、字符串 == “” 和 字符串 == “ ”區別

如果一個字符串的內容爲空,那麼該字符串 == “” 則爲true,而該字符串 == “ ”則爲false,有一個空格則證明不是空的,所以在對字符串進行空內容判斷時一定要注意,判斷字符串是否爲空也可直接調用 String.isEmpty() 方法。使用等號進行判斷是容易出問題的,建議調用方法判斷。


歡迎加QQ羣交流: 365532949
Homepage: http://junkchen.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章