如果我在Bundle中放了几个项目,我可以依赖它,当我为每个包的键时,我会以相同的顺序将它们取出来吗?
例如:
Bundle bundle = new Bundle();
bundle.putString("key1", "A");
bundle.putString("key2", "B");
bundle.putString("key3", "C");
我可以在以下代码之后依赖它吗
String concat = "";
for (String key : bundle.keySet()) {
concat += bundle.get(key).toString();
}
concat
的值为"ABC"
?
答案 0 :(得分:2)
查看Bundle
源代码内容怎么样?它内部有HashMap
,但不保证原始密钥顺序。所以答案将是否。
答案 1 :(得分:2)
bundle keySet()函数返回的Iterator属于底层Java类“Set”。这个迭代器是无序的。有关详细信息,请参阅此处:
http://developer.android.com/reference/java/util/Set.html#iterator()
您可以使用有序地图订购您的keySet:
SortedMap orderedMap = new TreeMap(originalMap);