一、構造
從構造方法我們可以看出,它和一般的list一樣,可以預先設定容器大小,預設的大小是10:
public sparsearray()
public sparsearray(int initialcapacity)
二、增它有兩個方法可以新增鍵值對:
在儲存資料的時候,是採用了二分法方式,以下是它採用二分法的原始碼:
private static int binarysearch(int a, int start, int len, int key)
high = guess;
}if (high == start + len)
return start + len ^ 0xffffffff;
if (a[high] == key)
return high ^ 0xffffffff;
}
所以,它儲存的數值都是按鍵值從小到大的順序排列好的。
三、查它有兩個方法可以取值:
public e get(int key)
public e get(int key, e valueifkeynotfound)
最後乙個從傳參的變數名就能看出,傳入的是找不到的時候返回的值
檢視第幾個位置的鍵:
public int keyat(int index)
檢視鍵所在位置,由於採用二分法查詢鍵的位置,所以沒有的話返回小於0的數值,而不是返回-1,這點要注意,返回的負數其實是表示它在哪個位置就找不到了,如果你存了5個,查詢的鍵大於5個值的話,返回就是-6:
插入、查詢和刪除操作的效率都是log2(n)。 在插入的時候還要對整個陣列進行移動,代價也是不低的。 對hashmap來說,它更省空間和省了auto-boxing的開銷。
android程式設計3 socket程式設計之udp傳送
需要實現的功能 採用udp下的socket程式設計,當按下確認鍵,模擬器傳送文字框資料,pc機上的網路除錯助手接收 環境 win7 eclipse sdk package test.soket import com.test button.r class test socket extends ac...
Android網路程式設計之通過Post傳遞引數
a 使用map來儲存引數 mapmap new hashmap map.put name onmoso map.put password onmoso.com b 使用defaulthttpclient建立httpclient例項 c 構建httppost d 將由map儲存的引數轉化為鍵值name...
程式設計之我見
激情不夠,活也不行 部分專注專案,理論不行。或當下的技術棧完全可以勝任工作,拿到可觀的薪水,溫水之中做乙隻安逸的青蛙。學好程式設計必須富有激情,充滿了性趣。理論 沒有理論支撐,實踐只是機械性的死記硬背 實踐 將理論穿插進實踐,將理論都玩明白,姿勢要舒服。經驗 遇到的問題多了,解決的多了,經驗就多了。...