在Android中有什么类似NSDictionary的吗?

时间:2012-08-06 14:51:52

标签: android listview arraylist android-listview

我是Android新手。我做了搜索,但在Android中找不到任何类似iOS的NSdictionary的工作。例如,在iOS中我可以像这种格式

创建 SIMPLE 字典数组
Array
   idx1: [objA1 for keyA],[objB1 for keyB],[objB1 for keyC]
   idx2: [objA2 for keyA],[objB2 for keyB],[objB2 for keyC]
   idx3: [objA3 for keyA],[objB3 for keyB],[objB3 for keyC]

我知道我可以创建类似于android

中的字符串数组
<string-array name="list_obj1">
    <item>ObjA1</item>
    <item>ObjB2</item>
    <item>ObjC3</item>
</string-array>
<string-array name="list_obj2">
    <item>ObjB1</item>
    <item>ObjB2</item>
    <item>ObjB3</item>
</string-array>
<string-array name="list_obj3">
    <item>ObjC1</item>
    <item>ObjC2</item>
    <item>ObjC3</item>
</string-array>

我的问题是,是否还有其他东西用于在iOS中创建 AN 字典数组。

感谢您的帮助。

3 个答案:

答案 0 :(得分:14)

首先,我认为有很多这方面的教程,然后你可以搜索更多信息。 由于您是Android的新手,您可能不知道要搜索的“名称”。对于这种情况,“HashMap”就是你要找的。它像NSdictionary一样工作。

//Create a HashMap
Map <String,String> map =  new HashMap<String,String>();
//Put data into the HashMap
map.put("key1","Obj1");
map.put("key2","Obj2");
map.put("key3","Obj3");

// Now create an ArrayList of HashMaps
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();

//Add the HashMap to the ArrayList
mylist.add(map);

现在你有一个字典数组。

希望得到这个帮助。

答案 1 :(得分:2)

您可以将@ user1139699所说的内容放入ArrayList。

ArrayList<HashMap> list = new ArrayList();

Map <String, String> map =  new HashMap<String,String>();
map.put("key","Obj");

list.add(map);

答案 2 :(得分:0)

如果你想加载这样的文件:

property.key.1=value of 1st key
property.key.2=value of 2nd key
prompt.alert = alert 

等你可以使用java Properties();然后,您可以立即获得每个键的值。



说明:

您有一个文件myTranslations.txt。在该文件中,您可以使用以下格式编写键/值对:

property.key.1=value of 1st key
property.key.2=value of 2nd key
prompt.alert = alert 

其中“=”前面的部分是键,后面的部分是值。

然后在您的代码中执行:

Properties properties = new Properties();

    File propertiesFile = new File (filePath);
    FileInputStream inputStream = null;
    try {
        inputStream = new FileInputStream(propertiesFile);
        properties.load(inputStream);
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }

其中filePath是上面文件的路径。

然后你可以得到每个键的值:

properties.get("prompt.alert")

将返回字符串:

alert

就像它在txt文件中一样。

如果它有帮助请upvote。