java - android 中两个键一个值

标签 java list

如何实现以下数据?

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/

相关文章:

Java - 如何根据一定的长度分割字符串?

list - 这是 F# 中尾递归的一个很好的例子吗?

python : List + lambda behaviour

python - 需要一种巧妙的方法来为 pygame/pyOpenGL 项目创建一个大列表

java - Android文字游戏的保存技巧

java - java 中的 Arrays.copyOfRange 方法抛出不正确的异常

java - 我在 ICU4J 库中得到错误的输出

Python:如何从简单的键和值列表构建字典

list - OCaml功能帮助涉及解析列表列表

java - B+树 split 错误