編輯:關於Android編程
package cc.testsparsearray;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import android.os.Bundle;
import android.util.SparseArray;
import android.app.Activity;
/**
* Demo描述:
* SparseArray使用示例
* 利用SparseArray替換使用HashMap<Integer,E>
* 類似的還有SparseIntArray,SparseBooleanArray,LongSparseArray
*
* 參考資料:
* 1 http://liuzhichao.com/p/832.html
* 2 http://blog.csdn.net/xyz_fly/article/details/7931943
* 3 http://my.eoe.cn/appadventure/archive/2824.html
* Thank you very much
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
SparseArray sparseArray=new SparseArray<String>();
//增加的兩種方式
sparseArray.append(0, "This is 0");
sparseArray.append(1, "This is 1");
sparseArray.append(2, "This is 2");
sparseArray.put(3, "This is 3");
sparseArray.put(4, "This is 4");
//遍歷
for (int i = 0; i < sparseArray.size(); i++) {
System.out.println("遍歷得到位置"+i+"的值為:"+sparseArray.get(i));
}
//查找某個位置的鍵
int key =sparseArray.keyAt(1);
System.out.println("查找位置1處的鍵 key="+key);
//查找某個位置的值
String value=(String) sparseArray.valueAt(1);
System.out.println("查找位置1處的值 value="+value);
//修改的兩種方式
sparseArray.put(0, "This is new 0");
sparseArray.put(1, "This is new 1");
sparseArray.setValueAt(2, "This is new 2");
sparseArray.setValueAt(3, "This is new 3");
for (int i = 0; i < sparseArray.size(); i++) {
System.out.println("修改後遍歷得到位置"+i+"的值為:"+sparseArray.get(i));
}
//刪除
sparseArray.delete(0);
System.out.println("刪除操作後sparseArray大小 size="+sparseArray.size());
//注意:
//在執行刪除後sparseArray的size()減小了1
//為了遍歷完,應該將循環條件修改為i < sparseArray.size()+1
//HashMap也有類似的情況.參見分割線以下的例子
//如果關於SparseArray的遍歷有什麼好的方法或者建議,多謝
for (int i = 0; i < sparseArray.size()+1; i++) {
System.out.println("刪除後遍歷得到位置"+i+"的值為:"+sparseArray.get(i));
}
System.out.println("//////////////這是分割線////////////////");
HashMap<Integer, String> hashMap=new HashMap<Integer, String>();
hashMap.put(0, "000");
hashMap.put(1, "111");
hashMap.put(2, "222");
hashMap.put(3, "333");
hashMap.put(4, "444");
for (int i = 0; i < hashMap.size(); i++) {
System.out.println("HashMap遍歷得到位置"+i+"的值為:"+hashMap.get(i));
}
hashMap.remove(Integer.valueOf(0));
System.out.println("刪除操作後hashMap大小 size="+hashMap.size());
//注意:
//在執行刪除後hashMap的size()減小了1
//為了遍歷完,應該將循環條件修改為i < hashMap.size()+1
for (int i = 0; i < hashMap.size()+1; i++) {
System.out.println("HashMap遍歷得到位置"+i+"的值為:"+hashMap.get(i));
}
//但是這樣做是意義不大的,我們常用的是利用keySet來遍歷,如下:
Set<Integer> set = hashMap.keySet();
for (Iterator<Integer> iter = set.iterator(); iter.hasNext();) {
Integer keyTemp = iter.next();
String valueTemp = hashMap.get(keyTemp);
System.out.println("利用keySet遍歷:"+keyTemp + "的值是" + valueTemp);
}
}
}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SparseArray使用示例"
android:layout_centerInParent="true" />
</RelativeLayout>
安卓實踐開發之MVP一步步實現到高級封裝
在上家干了快2年辭職後在家休息了快一個月了,說實在的不上班的感覺爽(睡覺睡到自然醒,游戲玩到手抽筋)。哈哈,又是快到一年過中秋的時候了,好久沒有更新博客了,今天順便撸一篇
Android Library上傳到JCenter倉庫實踐
前言這段時間研究了下以前做app開發的時候並沒有太過關注的JCenter倉庫,在實際開發當中通常都是使用第三方開發者上傳到jcenter的library,而我們使用的這些
android Fragment入門
Fragment是android3.0引入的,為什麼google推出Fragment呢?主要目的是用在大屏幕設備上--例如平板電腦上,支持更加動態和靈活的UI設計。平板電
android加密解密算法之3DES算法用例
android加密算法很多:DES ,AES,3DES等等。詳情請google,baidu。des的使用安全行很低,再次我們詳細了解下3DES.3DES顧名思義,就是對d