2016-01-05 3 views
0

Цель этого метода здесь является пузырьковой сортировки в соответствии с ID человекаBubble рода Список_массивов объектов

однако в этой области:

if (al.get(i).compareTo(al.get(i+1)) > 0) 

он гласит: не может найти символ - метод CompareTo (Java .lang.Object)


Это класс человек (не очень имп)////

public class Person implements java.io.Serializable 
{ 
    String personID; 
    String name; 
    byte dayDOB; 
    byte monthDOB; 
    short yearDOB; 
    String telNum; 
} 

Это метод сортировки:

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; 
      } 
     } 
    } 
    } 

PS; Я новичок, когда дело доходит до кода и изменяли этот код на срок до 7 часов

+2

Вы написали метод compareTo() для класса Person? – TangledUpInBlue

+0

о, вот почему ... и как это получается? –

+0

Вам нужно понять http://www.tutorialspoint.com/java/java_using_comparator.htm – awsome

ответ

0

Объекты поставляются со встроенным методом compareTo(), но лучше всего переопределить значение по умолчанию. See the java documentation for compareTo(). Это должно упростить ваш код совсем немного.

Ваш класс Person должен будет реализовать Comparable и включить его в объявление класса. Вы можете написать compareTo() метод что-то вроде этого:

public int compareTo(Person b) { 
    return this.name.compareTo(b.getName()); 
} 

compareTo() метод должен возвращать -1, 0 или 1. Если вы звоните a.compareTo(b) в главном классе, compareTo() должен возвращать ноль, если объекты сортируются в то же место (то есть равно), -1, если объект a должен быть отсортирован перед объектом b или 1, если объект a должен быть отсортирован после b.

Вам нужно будет решить, что составляет один и тот же человек и как их следует сортировать. По алфавиту по имени? Имя и идентификатор? Что бы это ни было для вашей программы.

+0

Только вопрос, что мне делать написать в параметрах (рядом с compareTo) ?? –

+0

В классе Person, или когда вы вызываете compareTo в другом классе? – TangledUpInBlue

+0

в классе person, я думаю, –

Смежные вопросы