关于LIST中元素更换位置的问题~~~

andybingd 2014-04-07 01:15:58
各位大神,我现在对一个list中元素实现更换位子的功能,比如制定其中一个元素往前一位,或者往后一位,或者到最前、最后。
现在遇到点问题,详细描述如下:
这个LIST我通过转化为二维数组在Jframe中的Jtable显示,
然后我取得鼠标选中的值,通过
int index = 0;
for (int i = 0; i <sleList.size(); i++) {
if (sid ==sleList.get(i).getNum())//sid是list集合中一个对象元素的一个属性
;
{
index = i;// index 就是获得的下标
}
}
这样我就得到我在Jtable选中的那个对象在LIST中的下标。
我想LIST是有序的,所以我想按以下方法操作:
要实现把选中对象移至最前,就先sleList.remove(index);删除这个元素,sleList.add(0, select); 再把对象插到第一个位置;
然后再转化为二维数组在JTabel中显示。
把对象前移一位就先sleList.remove(index);删除这个元素,sleList.add(index-1, select); 再把对象插到前一个索引位置
然后再转化为二维数组在JTabel中显示。
往后移,移到最后也是这个思路,但实际操作中,最后显示的结果跟预期的不一样。
比如
1 aaa
2 bbb
3 ccc
4 ddd
这样一个表,我选中CCC,得到的索引值就可能不会是2,然后把它移到最前操作的时候,会出现以下情况
1 ccc
2 aaa
3 bbb
4 ccc
没把它删掉,还挤掉了ddd的位置。
先把问题描述到这,其他的差不多的情况,请大神指教我的思路有什么问题。谢谢!

...全文
1792 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
eccel 2014-04-08
  • 打赏
  • 举报
回复
list是有序的,本身移除和指定位置添加元素的方法肯定不会有问题,问题肯定出在你自己的list实现里
葛芮拉 2014-04-08
  • 打赏
  • 举报
回复
你确定每次for循环中,只给index赋值一次么,有没有重复赋值这种情况,赋值后面加一个break。
andybingd 2014-04-07
  • 打赏
  • 举报
回复
求指导
andybingd 2014-04-07
  • 打赏
  • 举报
回复

62,615

社区成员

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

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