Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 气泡排序对象数组列表_Java_Sorting_Bubble Sort_Compareto_Cannot Find Symbol - Fatal编程技术网

Java 气泡排序对象数组列表

Java 气泡排序对象数组列表,java,sorting,bubble-sort,compareto,cannot-find-symbol,Java,Sorting,Bubble Sort,Compareto,Cannot Find Symbol,此方法的目的是根据个人ID进行冒泡排序 然而,在这方面: if (al.get(i).compareTo(al.get(i+1)) > 0 ) 它声明:找不到符号方法compareTo(java.lang.Object) 这是班上的人(不是很顽皮)/// 这是排序方法: public static void sort(ArrayList al) { Person p; String temp; boolean flag = true; System.ou

此方法的目的是根据个人ID进行冒泡排序

然而,在这方面:

if (al.get(i).compareTo(al.get(i+1)) > 0 )
它声明:找不到符号方法compareTo(java.lang.Object)


这是班上的人(不是很顽皮)///


这是排序方法:

public static void sort(ArrayList al)
  {
   Person p;
   String temp;
   boolean flag = true;

   System.out.println("Database will be sorted acc to ID ");
   System.out.println();


    while (flag = true)
    {
        flag = false;

        for (int i=0;i<al.size()-1;i++)    
        {
            p = (Person) al.get(i);

            if (al.get(i).compareTo(al.get(i+1)) > 0 )
            {
                temp = al.get(i);
                al.set(i,al.get(i+1) );
                al.set(i+1, temp);
                flag = true;
            }
        }
    }
    }
publicstaticvoid排序(arraylistal)
{
人p;
字符串温度;
布尔标志=真;
System.out.println(“数据库将根据ID进行排序”);
System.out.println();
while(flag=true)
{
flag=false;
对于(int i=0;i 0)
{
温度=al.get(i);
al.set(i,al.get(i+1));
所有组件(i+1,温度);
flag=true;
}
}
}
}

聚苯乙烯;谈到代码,我是个新手,已经修改代码长达7个小时了

对象带有内置的compareTo()方法,但最好覆盖默认值。这将大大简化您的代码

您的Person类将需要实现Comparable,并将其包含在类声明中。然后,您可以编写一个
compareTo()
方法,如下所示:

public int compareTo(Person b) {
   return this.name.compareTo(b.getName());
}
compareTo()
方法应返回-1、0或1。如果在主类中调用
a.compareTo(b)
compareTo()
如果对象排序到相同的位置(即相等),则应返回零;如果对象a排序在对象b之前,则返回-1;如果对象a排序在对象b之后,则返回1


你需要决定什么构成同一个人,以及他们应该如何分类。按姓名字母顺序排列?姓名和身份证?不管你的节目是什么

您为Person类编写了compareTo()方法吗?哦,这就是为什么…这是怎么回事?您需要了解,请不要使用原始类型,您应该使用
ArrayList
或更好的
List
只是一个问题,我在Person类的参数(compareTo旁边)中写什么,或者在另一个类中调用compareTo?在person类中,我认为person类的compareTo方法应该将另一个person对象作为参数,并比较person对象之间的特定变量。让我编辑一下我的答案。
public int compareTo(Person b) {
   return this.name.compareTo(b.getName());
}