我在Android中遇到了一个奇怪的HashMap问题.我正在将值放入形式的hashmap中
HashMap <String,String> sample = new HashMap<String,String>();
Run Code Online (Sandbox Code Playgroud)
但是,假设我按以下顺序放置以下值:
sample.put("ifi1", "video1");
sample.put("ifi2", "video2");
sample.put("ifi3", "video3");
sample.put("ifi4", "video4");
sample.put("ifi5", "video5");
sample.put("ifi6", "video6");
sample.put("ifi7", "video7");
sample.put("ifi8", "video8");
sample.put("ifi9", "video9");
Run Code Online (Sandbox Code Playgroud)
这只是一个与我的相似的简单示例.我的实际代码中只有一个更大的列表.但是,当我现在尝试仅打印值时,我得到一个无序列表,如下所示:
VIDEOS: video1
VIDEOS: video3
VIDEOS: video2
VIDEOS: video5
VIDEOS: video4
VIDEOS: video7
VIDEOS: video6
VIDEOS: video9
VIDEOS: video8
Run Code Online (Sandbox Code Playgroud)
事实上,我希望它产生以下列表:
VIDEOS: video1
VIDEOS: video2
VIDEOS: video3
VIDEOS: video4
VIDEOS: video5
VIDEOS: video6
VIDEOS: video7
VIDEOS: video8
VIDEOS: video9
Run Code Online (Sandbox Code Playgroud)
为什么这个,任何想法?
aio*_*obe 23
那就对了.迭代期间的HashMap实现Map不保证任何顺序.
......看看LinkedHashMap:
Map<String, String> sample = new LinkedHashMap<String, String>();
sample.put("ifi1", "video1");
sample.put("ifi2", "video2");
sample.put("ifi3", "video3");
sample.put("ifi4", "video4");
sample.put("ifi5", "video5");
sample.put("ifi6", "video6");
sample.put("ifi7", "video7");
sample.put("ifi8", "video8");
sample.put("ifi9", "video9");
for (String video : sample.values())
System.out.println(video);
// Prints
video1
video2
video3
video4
video5
video6
video7
video8
video9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12372 次 |
| 最近记录: |