黑马程序员技术交流社区
标题:
关于List排序的问题
[打印本页]
作者:
gm1314
时间:
2014-7-30 07:29
标题:
关于List排序的问题
本帖最后由 gm1314 于 2014-7-30 20:23 编辑
public class Test9 {
/*
* 9、 定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进行排序
*/
public static void main(String[] args) {
ArrayList lst=new ArrayList();
lst.add(4);
lst.add(8);
lst.add(6);
lst.add(3);
int len = lst.size();
for(int i = 0; i < len - 1; i++) {
int min =(Integer) lst.get(i);
for(int j = i ; j < len; j++) {
int max=(Integer) lst.get(j);
if(min >(Integer)lst.get(j)) {
lst.add(j,min) ;
lst.add(i,max);
}
}
}
for(int i = 0; i < len; i++) {
System.out.print(lst.get(i) + " ");
}
}
}
复制代码
为什么当最后一个数变化时,排序结果就变了!
作者:
Bule丶
时间:
2014-7-30 23:25
如果你外层循环min的值比内层循环max的值大,便会在索引外j的地方插入最大值,那么lst集合就会变大,我发现lst.add方法不是替换,就是插入了一个值,但是len长度还是4 8大,如果把8插入到第3个,就不进lst.add了,
作者:
gm1314
时间:
2014-7-31 06:11
Bule丶 发表于 2014-7-30 23:25
如果你外层循环min的值比内层循环max的值大,便会在索引外j的地方插入最大值,那么lst集合就会变大,我发现 ...
哦哦 谢谢 add是增加一个值,最后的大了,不进条件就会出错!加个好友吧:)
作者:
刘斌2014
时间:
2014-7-31 09:07
以前我也遇到过这样的问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2