在数组中我们可以使用冒泡排序来给数组中的值排序 那么在集合中也大同小异,只是所使用的方法不同,那么让我们来看看吧。
首先让我们来看看在数组中是如何使用冒泡排序
public class Text03 {
public static void main(String[] args) {
int[] num={10,21,5,101,99};
//从大到小
for (int j=0;j<num.length;j++)
{
for (int i=0;i<num.length-1-j;i++)
{
if (num[i]>num[i+1])
{
//比大小 给两个值互换位置
int k=num[i];
num[i]=num[i+1];
num[i+1]=k;
}
}
}
//从小到大
System.out.println("从小到小排列顺序是"+"");
for (int i=0;i<num.length;i++)
{
System.out.print(num[i]+" ");
}
for (int i=0;i<num.length;i++)
{
for (int j=0;j<num.length-1-i;j++)
{
if (num[j]<num[j+1])
{
int k=num[j];
num[j]=num[j+1];
num[j+1]=k;
}
}
}
System.out.println("\n从大到小排列顺序是"+"");
for (int i=0;i<num.length;i++)
{
System.out.print(num[i]+" ");
}
}
}
可以从中看到冒泡排序只需要用两个for循环便可以实现从大到小 / 从小到大的排序详情请看注释
接下来让我们看看集合中如何使用冒泡排序
public class Text01 {
public static void main(String[] args) {
//定义集合 这里需要给List添加泛型 否则下面的list的数据类型就是object
List<Integer> list=new ArrayList();
System.out.println("请输入10位数");
//for循环
for (int i=0;i<10;i++){
Scanner scanner=new Scanner(System.in);
int s=scanner.nextInt();
list.add(s);
}
//和数组一样,冒泡排序。
for (int i=0;i<10;i++){
for (int j=i+1;j<10;j++){
//因为数组和集合不同 集合需要使用get方法来获取list的下标元素
if (list.get(i)>list.get(j)){
//将第一个值赋给第二个,然后再将第二个值给第一个
int temp=list.get(i);
//set是list的方法, 具体用法: list.set(a,b)= b=a
list.set(i,list.get(j));
//这里同理
list.set(j,temp);
}
}
}
//最后输出就好了
System.out.println(list);
//其实使用这两行集合自带的方法就可以代替上面的一大堆代码
// Collections.sort(list); //排序
// Collections.reverse(list); //从大到小
//这是冒泡排序的简单逻辑 不懂的可以看看这个 照着这个写
// int a = 1;
// int b = 2;
// if (a<b){
// int temp=a;
// a=b;
// b=temp;
// }
// System.out.println(a);
// System.out.println(b);
}
}
如果有帮助到您 希望可以给我点个赞评论一下 谢谢啦