关于List> add和remove的问题

demondeviljet 2013-08-15 10:26:39
我想实现List<HashMap<String,String>> 中元素之间的交换,代码如下
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class ListMapData {

private static String[] names = { "00", "11", "22", "33", "44", "55", "66", "77" };
private static int[] icons = { 0, 1, 2, 3, 4, 5, 6, 7 };

public static void main(String[] args) {
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

for (int i = 0; i < names.length; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name" + i, names[i]);
map.put("icon" + i, icons[i] + "");
list.add(map);
}

for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j).get("name" + j) + "---" + list.get(j).get("icon" + j));
}

HashMap<String, String> map7 = list.get(7);
HashMap<String, String> map1 = list.get(1);
list.add(1, map7);
list.remove(2);
list.add(7, map1);
list.remove(8);

for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j).get("name" + j) + "---" + list.get(j).get("icon" + j));
}
}

}

但结果却是要交换两个元素变为null了 不知道为什么 求高人解答
...全文
232 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
demondeviljet 2013-08-15
  • 打赏
  • 举报
回复
我明白了 ---
keepdaydayup 2013-08-15
  • 打赏
  • 举报
回复
楼上正解,元素已经成功交换了,只是查看结果取值取错了
zhkchi 2013-08-15
  • 打赏
  • 举报
回复
不知道你看出来了没有, 第二个元素, 是 name7 和 icon7 , 所以你list.get(j).get("name" + j). 也就是 list.get(1).get("name1") 是 null
zhkchi 2013-08-15
  • 打赏
  • 举报
回复
[{icon0=0, name0=00}, {icon7=7, name7=77}, {icon2=2, name2=22}, {name3=33, icon3=3}, {name4=44, icon4=4}, {name5=55, icon5=5}, {name6=66, icon6=6}, {icon1=1, name1=11}] 这个是插入以后list里面的hashmap的值, 你自己看吧

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧