Bundle 中值的“顺序”

dav*_*vis 5 java android

如果我将多个项目放入捆绑包中,我可以相信当我获取捆绑包的每个密钥时,我会按照相同的顺序取出它们吗?

例如:

Bundle bundle = new Bundle();
bundle.putString("key1", "A");
bundle.putString("key2", "B");
bundle.putString("key3", "C");
Run Code Online (Sandbox Code Playgroud)

在下面的代码之后我可以相信吗

String concat = "";
for (String key : bundle.keySet()) {
   concat += bundle.get(key).toString();
}
Run Code Online (Sandbox Code Playgroud)

的值concat将是"ABC"

dat*_*eah 3

捆绑包 keySet() 函数返回的 Iterator 属于底层 Java 类“Set”。该迭代器是无序的。有关更多详细信息,请参见此处:

http://developer.android.com/reference/java/util/Set.html#iterator()

您可以使用排序映射来排序 keySet:

SortedMap orderMap = new TreeMap(originalMap);