Android開發之那些好用的資料結構與API
由於Android Application 主要是Java語言開發的,所以在寫程式的時候,很多朋友們都會用到Java裡面常用的資料結構,但是Android中提供了更加適合這個平臺、好用的資料結構和API,下面來介紹一些常用的但並不是人人都知道的知識。
一、資料結構篇
1.SparseArray —— 替代HashMap,主要有以下幾種
- SparseLongArray
- SparseIntArray
- SparseBooleanArray
- SparseArray
SparseArray比HashMap更省記憶體,它對資料採取了壓縮的方式來表示稀疏陣列的資料,從而節約記憶體空間,SparseArray只能儲存key為int型別的資料,同時,SparseArray在儲存和讀取資料時候,使用的是二分查詢法
//建立一個儲存String值得SparseArray
SparseArray<String> sparseArray = new SparseArray<String>();
//儲存 注意key是int型別
sparseArray.put(1, "zhangsan");
sparseArray.put(2, "123456");
//通過int型別的key獲取value
sparseArray.get(1);
//第二個引數是預設值
sparseArray.put(2, "000000");
//獲取索引處的key與value
sparseArray.keyAt(1);
sparseArray.valueAt(1);
2.ArrayMap 和 SimpleArrayMap —— 替代HashMap
其中,ArrayMap 是 Map的子類,而SimpleArrayMap 不是。
//建立一個ArrayMap key和value都是String型別 可以是任意型別
ArrayMap<String, String> arrayMap = new ArrayMap<>();
//存
arrayMap.put("username", "zhangsan");
arrayMap.put("password", "123456");
//取
arrayMap.get("username");
arrayMap.get("password");
總結說明:
(1)如果key的型別是int、long或者boolean型別,那麼使用SparseArray,因為它避免了自動裝箱的過程;
(2)如果key型別為其它的型別,則使用ArrayMap;
(3)兩個資料結構都適合資料量不是特別大的情況。
二、API篇
1.View.isShown() 判斷檢視是否顯示,不需要再根據 View.getVisibility() == View.VISIBLE來判斷是否顯示或者隱藏,但是注意
(1)View.getVisibility() == View.VISIBLE 只是對View自身的可見性進行判斷;
(2)View.isShown() 只有它及其所有的祖先都為visible時,才返回true。
2.TextUtils.isEmpty(CharSequence)方法,用於判斷字串是否為null或””,以後再也不要寫 if(str != null && !str.equals(“”))
3.TextWatcher介面,用來監聽文字輸入框內容的改變,這個應該相對知道的人多一點,因為經常會有這樣的需求,基本結構如下:
TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
};
4.TextView.setError(); 這個一般用於EditText中,驗證使用者輸入,然後給予提示,這樣就不需要使用Toast或者Dialog來提示了。
5.onBackPressed(); 呼叫此句,相當於點了一次返回按鈕。
6.runOnUiThread可以直接執行到主執行緒中,一般在子執行緒中使用,如下:
new Thread(new Runnable() {
@Override
public void run() {
//執行耗時操作
runOnUiThread(new Runnable() {
@Override
public void run() {
//操作主執行緒的UI
}
});
}
}).start();
其實Android 還有很多好用的API,但是並不是人人都知道,歡迎大家繼續補充和投稿~~~
相關文章
- Android開發之那些好用的資料結構與API(三)Android資料結構API
- Android開發之那些好用的資料結構與API(二)Android資料結構API
- 驅動開發之基本資料結構資料結構
- 看得見的資料結構Android版之陣列表(資料結構篇)資料結構Android陣列
- 那些關於前端資料結構與演算法前端資料結構演算法
- 看得見的資料結構Android版之開篇前言+完篇總結資料結構Android
- Android API開發之OpenGL開發之Android OpenGL STL詳解AndroidAPI
- 資料結構與演算法之線性結構資料結構演算法
- 資料結構與集合之(1)ArrayList 與 Arrays資料結構
- 好用的API介面,開發效率的利器API
- java併發資料結構之CopyOnWriteArrayListJava資料結構
- 看得見的資料結構Android版之雙連結串列篇資料結構Android
- 看得見的資料結構Android版之棧篇資料結構Android
- 資料結構之單連結串列的建立與刪除資料結構
- 資料結構與演算法之美資料結構演算法
- 資料結構與演算法之排序資料結構演算法排序
- 演算法與資料結構之集合演算法資料結構
- 開發常需要的好用API彙總API
- 開發常用的好用api介面彙總API
- 開發經常需要的好用API大全API
- 資料結構小白系列之資料結構概述資料結構
- 看得見的資料結構Android版之單連結串列篇資料結構Android
- 《資料結構與演算法之美》學習筆記之開篇資料結構演算法筆記
- Java資料結構之線性表-Java那些事兒專欄Java資料結構
- 看得見的資料結構Android版之佇列篇資料結構Android佇列
- 結構化資料與非結構化資料的差異
- C#開發BIMFACE系列46 服務端API之離線資料包下載及結構詳解C#服務端API
- 資料結構之通用樹結構的實現資料結構
- 資料結構與演算法之快速排序資料結構演算法排序
- 演算法與資料結構之圖的表示與遍歷演算法資料結構
- Redis資料結構—連結串列與字典的結構Redis資料結構
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 開發都在找的免費好用api集合API
- 高效開發利器:熱門好用的API分享API
- 資料結構之「樹」資料結構
- 資料結構之「棧」資料結構
- 資料結構之——棧資料結構
- 資料結構之棧資料結構