如何初始化两列arraylist?

toz*_*han 8 java android arraylist

我需要创建一个记录两列{int,String}的List.我认为ArrayList是我需要的,但我无法理解它.我从数据库中提取了字符串,而int是我需要识别字符串位置以供日后使用的索引值.

List<List<String>> strArray = ArrayList<List<String>>;

然后我可以为我从数据库中提取的每一行执行类似strArray.add().add()的操作吗?

The*_*111 16

另一种方法是制作一个自定义对象:

Class CustomObject {
    int value1;
    String value2;

    CustomObject(int v1, String v2) {
        value1 = v1;
        value2 = v2;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用它:

List<CustomObject> myList = new ArrayList<CustomObject>();
CustomObject o1 = new CustomObject(1, "one");
myList.add(o1);
// etc.
Run Code Online (Sandbox Code Playgroud)

如果int值是唯一的并且您想要考虑它们的密钥,那么a Map将像其他人建议的那样工作.


Abu*_*kar 15

我认为如果你的值是唯一的,你应该使用HashMapwith int作为键和Stringint.

Map<Integer,String> myMap = new HashMap<Integer,String>();
myMap.put(1,"ABC");
Run Code Online (Sandbox Code Playgroud)

请注意,由于Map集合和java集合不存储原语int,因此它们存储对象,因此您必须Integerint值使用包装类.

请参阅此链接为什么Java Collections不能直接存储Primitives类型?


Zzo*_*okk 5

如果您只需要两个值,您可以使用本机Pair

List<Pair> mPairs = new ArrayList<Pair>();

Pair pair = new Pair(123,"your string");
mPairs.add(pair);
Run Code Online (Sandbox Code Playgroud)

如果您的 int 值不是唯一的,因此您不能使用 HashMap,这将是一个很好的决定