【问题标题】:Is there anything like NSDictionary in android?android中有类似NSDictionary的东西吗?
【发布时间】:2012-08-03 13:36:03
【问题描述】:

我是 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>

我的问题是,是否还有其他方法可以在 Android 中创建 AN 字典数组,例如 iOS。

感谢您的帮助。

【问题讨论】:

    标签: android listview arraylist android-listview


    【解决方案1】:

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

    希望对您有所帮助。

    【讨论】:

    • 感谢您的快速回答,但您的回答仅用于创建字典。我正在寻找一个字典数组。请帮忙!
    • 谢谢。这就是我要找的。谢谢。
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回答。 @user1139699 的答案是我在这种情况下寻找的答案。
    【解决方案3】:

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

    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 文件中。

    如果有帮助请点赞。

    【讨论】:

    • 你能解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2021-08-04
    • 2012-05-31
    • 2012-11-27
    • 2017-11-21
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多