如何实现以下数据?
somelisttype <int>obj ;
obj 0,0 => val0
obj 0,1 => val1
obj 0,2 => val2
obj 1,0 => val8
obj 2,0 => val9
obj 2,1 => val10
0,0; 0,1
是键(或者以其他方式表示行索引或列索引。)
我想要以下功能..
obj 0.add(val11) == obj 0,3 => val11
obj 3.add(val12) == obj 3,0 => val12
obj 2.length => 2
obj 3.length => 1
obj 0,2 => val2
ValXX => 是值而不是对象(将是整数)
我不想创建二维数组,因为我不知道总 obj 或单个 obj0,obj1 的长度
在android中可以使用什么变量类型?
最佳答案
什么是List<List<Integer>>
?
您无法避免泛型类型成为此处的对象,但由于从 Integer
进行强制转换至int
是隐含的,您会看到使用中的任何差异。
更新
好的,这里是:
MyList l = new MyList();
l.set(0, 0, 1);
l.set(1, 0, 2);
l.set(1, 1, 3);
Log.d("TAG", l.get(0, 0) + " " + l.get(1, 0) + " " + l.get(1, 1));
这里是实现(当然你必须确保使用的索引是正确的,所以当尚未设置0时你不能添加索引1):
class MyList {
private List<List<Integer>> mList = new ArrayList<List<Integer>>();
public void set(int i, int k, int value) {
List<Integer> list;
if (i == mList.size()) {
list = new ArrayList<Integer>();
mList.add(i, list);
} else {
list = mList.get(i);
}
if (k == list.size()) {
list.add(value);
} else {
list.set(k, value);
}
}
public int get(int i, int k) {
return mList.get(i).get(k);
}
}
关于java - android 中两个键一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512410/