Bundle中值的“顺序”

时间:2015-02-23 20:41:03

标签: java android

如果我在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"

2 个答案:

答案 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);