黑马程序员技术交流社区
标题:
关于int型集合排序问题
[打印本页]
作者:
杨强彪
时间:
2015-3-14 10:47
标题:
关于int型集合排序问题
import java.util.*;
public class Test7 {
/**
* 第七题:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序
* (自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> arl=new ArrayList<Integer>(); //新建一个装Integer型数据的ArrayList集合
for(int i=0;i<5;i++) //生成5个数
{
int b=((int)(Math.random()*10)+1); //随机生成 1至10之间的随机整数
arl.add(b);
}
for(int j=0;j<arl.size();j++)
{
System.out.print(arl.get(j)+" ");
}
//调用集合排序方法
paixu(arl);
}
public static void paixu(ArrayList<Integer> arl) //冒泡排序 函数
{
int min=0;
// 外层循环,他决定一共走几趟
for (int i = 0; i < arl.size() - 1; i++) {
// 内层循环,开始逐个比较,如果发现
// 前一个数比后一个数大,则,交换
for (int j =0; j < arl.size()-i-1; j++) {
if (arl.get(j).compareTo(arl.get(j+1))>0)
{
//交换位置
int temp=arl.get(j);
arl.set(j, arl.get(j+1)); //调用set方法
arl.set(j+1, arl.get(j));
}
}
}
System.out.println();
System.out.println("排序后是:");
for(int k=0;k<arl.size();k++)
{
System.out.print(arl.get(k)+" ");
}
}
}
为嘛结果不对?排序方法哪里出问题了?
作者:
hamesksk
时间:
2015-3-14 13:06
交换位置的地方
arl.set(j+1, arl.get(j));
修改成
arl.set(j+1,temp);
作者:
杨强彪
时间:
2015-3-14 18:01
hamesksk 发表于 2015-3-14 13:06
交换位置的地方
arl.set(j+1, arl.get(j));
修改成
后来我也发现了 谢谢哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2