我必須使用兩個鍵和一個值來實現像Hashmap這樣的分類,比如Hashmap<K1, K2, V>
,其中兩個鍵是整數,值是我定義的通用MyObject。Android SparseArray <SparseArray <Object>>初始化
我看this,this和this後,我也知道,番石榴項目提供the table interface,但我不希望使用外部庫(如沒必要),以保持我的項目儘可能小。 所以我決定使用SparseArrays:我認爲這是更好的選擇,因爲我的鍵是int,並不一定從零開始並增加。
我這樣做初始化:
SparseArray<SparseArray<MyObject>> myObjectSparseArray = new SparseArray<SparseArray<MyObject>>();
現在讓我們去的地步。我可以做這樣的操作:
MyObject myObject = new MyObject();
myObjectSparseArray.get(3).put(2,myObject);
,或者我應該這樣做:
MyObject myObject = new MyObject();
myObjectSparseArray.put(3, new SparseArray<MyObject>());
myObjectSparseArray.get(3).put(2,myObject)
換句話說:我初始化這個單行兩SparseArrays?
SparseArray<SparseArray<MyObject>> myObjectSparseArray = new SparseArray<SparseArray<MyObject>>()
你認爲我的情況有更好的實現嗎?
兩個鍵是int,則唯一的替代解決方案,我想是使用正常「的Hashmap」或「SparseArray」和作爲密鑰由兩個int構成的字符串中使用: INT鍵1 = 3; int key2 = 2; String Key =「key1:」+ key1 +「key:」+ key2; 但我發現它有點棘手.. – 2013-03-22 14:55:53
你爲什麼覺得這很棘手? 'String key = key1 + key2'(在我們的例子中,鍵字符串應該是「32」),您可以通過'''itslef'使用'key.hashCode()'或'HashMap'來使用'SparseArray'。 – Elad92 2013-03-22 15:01:45