肥学 2021-05-27 20:14 采纳率: 83.3%
浏览 77
已采纳

java排序ArrayList对象排序问题

//Stu是这样的
public class Stu {
	private String name;
	private double grade;
	private int age;
	public Stu(String name,double grade,int age) {
		this.name=name;
		this.grade=grade;
		this.age=age;
	}
	public String getName() {
		return name;
	}
	public double getGrade() {
		return grade;
	}
	public int getAge() {
		return age;
	}

}
//想要实现一个冒泡排序根据Stu类里面的grade,现在的问题是我不知道怎么将stulist里面存储的对象交换位置不知道大佬们有没有什么方法可以帮帮我
ArrayList<Stu> stulist=new ArrayList<Stu>();
public void sort() {
    	for(Stu i:stulist) {
    		for(Stu j:stulist) {
    			
    		}
    	}
    }

//想要实现一个冒泡排序根据Stu类里面的grade,现在的问题是我不知道怎么将stulist里面存储的对象交换位置不知道大佬们有没有什么方法可以帮帮我

  • 写回答

1条回答 默认 最新

  • 一剑荒芜 2021-05-28 09:12
    关注

     

            System.out.println("降序List冒泡");
            for (int i = 0; i < stulist.size(); i++){
                for (int j = 0; j < stulist.size(); j++){
                    if (stulist.get(i).getGrade() > stulist.get(j).getGrade()){
                        Collections.swap(stulist, i, j);
                    }
                }
            }
            stulist.forEach(System.out::println);
            System.out.println("升序List冒泡");
            for (int i = 0; i < stulist.size(); i++){
                for (int j = 0; j < stulist.size(); j++){
                    if (stulist.get(i).getGrade() < stulist.get(j).getGrade()){
                        Collections.swap(stulist, i, j);
                    }
                }
            }
            stulist.forEach(System.out::println);
    

    冒泡如上。你可以不使用冒泡,使用其他的排序方式会简单很多

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码
  • ¥15 编写vba代码实现数据录入工作