8

我是安卓新手。我确实四处搜索,但在 Android 中找不到像 iOS 的 NSdictionary 这样的工作。例如,在 iOS 中,我可以像这种格式一样创建简单的字典数组

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>

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

谢谢您的帮助。

4

3 回答 3

15

首先,我认为有很多关于这些东西的教程,然后你可以搜索更多信息。由于您是 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);

现在你有 st 像一个字典数组。

希望这有帮助。

于 2012-08-06T14:56:25.977 回答
2

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

ArrayList<HashMap> list = new ArrayList();

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

list.add(map);
于 2012-08-06T15:13:58.020 回答
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 文件中一样。

如果有帮助请点赞。

于 2012-08-06T16:24:11.667 回答