避免Map容器key重复时对value造成数据覆盖:IdentityHashMap的使用
在Map容器使用过程中出现一个问题,同一个变量名充当Key的话后面的数据会覆盖前面循环的数据经查证发现存在IdentityHashMap这个容器,可以避免相同Key的数据覆盖Map<String, Object>[] data = new IdentityHashMap[20];int[] curr = new int[10];int ...
在Map容器使用过程中出现一个问题,同一个变量名充当Key的话后面的数据会覆盖前面循环的数据
经查证发现存在IdentityHashMap这个容器,可以避免相同Key的数据覆盖
Map<String, Object>[] data = new IdentityHashMap[20];
int[] curr = new int[10];
int len = lastinfo.size();
System.out.println(len);
//十条数据一页
int cnt = 0;
i = 0;
while (i < len) {
List<hotelInfo> hotel = new ArrayList<hotelInfo>();
curr[cnt]=cnt + 1;
for (i = cnt * 10; i < (cnt+1) * 10; i++) {
if (i >= len)
break;
hotel.add(lastinfo.get(i));
}
System.out.println(hotel);
if (hotel.isEmpty())
break;
data[cnt] = new IdentityHashMap<String, Object>();
data[cnt].put("curr", curr[cnt]);
data[cnt].put("all", len);
data[cnt].put("info", hotel);
cnt++;
}
关键是while循环中的hotel初始化,让IdentityHashMap识别为不同的Key
更多推荐
所有评论(0)