android中有类似NSDictionary的东西吗?
Posted
技术标签:
【中文标题】android中有类似NSDictionary的东西吗?【英文标题】:Is there anything like NSDictionary in android? 【发布时间】: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。
感谢您的帮助。
【问题讨论】:
【参考方案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 文件中。
如果有帮助请点赞。
【讨论】:
你能解释一下吗?以上是关于android中有类似NSDictionary的东西吗?的主要内容,如果未能解决你的问题,请参考以下文章
在Oracle 中有类似 sqlserver 中的unicode 的函数吗