2015-08-31 5 views
-1
public class Organization { 

    protected List<Address> addresses; 
    protected String SourceId; 
    protected String organizationId; 
    protected String organizationName; 
} 
public class ReferenceOrg{ 
public List<Organization> getAllOrgs() { 
     List<Organization> listOfOrgsTemp = new ArrayList<Organization>(); 
     List<Organization> listOfOrgs = new ArrayList<Organization>(); 
     listOfOrgsTemp.addAll(webToolWS.getAllProviders()); 
     listOfOrgsTemp.addAll(webToolWS.getAllVendors()); 
     for(Organization org : listOfOrgsTemp) { 
      listOfOrgs.add(org); 
     } 
     return listOfOrgs; 
    } 
} 

Я хотел, чтобы отсортировать listOfOrgs по ORGANIZATIONNAME, но я не могу реализовать компаратор на моей организации класса, он используется различными проектами, и они хотят, чтобы сортировать по полю различно. с изменением класса организации, как я могу сортировать список listOpgs вручную. enter code hereсортировки бобов вручную без компаратора

+3

Вы должны Google, как использовать компаратор его. Вы можете использовать Collections.sort() и передать список с компаратором custoum без изменения чего-либо в классе. – kai

+0

@ hanu - Обратите внимание на мой ответ. Надеюсь, это поможет вам начать. Вы поставляете 'Comparator' и используете' Collections.sort (..., ...) ', где первый аргумент - список для сортировки, а второй - имя' Comparator'. Строки с флагом '// *****' или дополнительным кодом для добавления. Внутри «Компаратора» находится одна строка, на которую следует сосредоточиться: «return o1.compareTo (o2)», который сравнивает строки o1 и o2 и возвращает 1, если он равен, -1, если o1 o2. – DSlomer64

ответ

0

Я только что научился использовать Comparator для сортировки JTable с числовыми данными строки запятыми. Я не пытался выполнить свое дополнение к вашему коду (и должен был удалить некоторые из ваших ссылок, чтобы получить компиляцию), но, возможно, это поможет вам начать работу. Линии, помеченные или окруженные // ******* показать код для добавления.

public class ReferenceOrg 
{ 

    static Comparator compareOrgs; // *********************** 

    public List<Organization> getAllOrgs() 
    { 
    // ************************************************************ 
    compareOrgs = (Comparator) new Comparator() 
    { 
     @Override public int compare(Object oo1, Object oo2) 
     { 
     Organization or1 = (Organization)oo1; 
     Organization or2 = (Organization)oo2; 
     String o1 = or1.organizationId; 
     String o2 = or2.organizationId; 
     return o1.compareTo(o2); 
     } 
    }; 
    // ************************************************************ 

    List<Organization> listOfOrgsTemp = new ArrayList<Organization>(); 
    List<Organization> listOfOrgs = new ArrayList<Organization>(); 
    ... 
    for(Organization org : listOfOrgsTemp) { 
     listOfOrgs.add(org); 
    } 

    Collections.sort(listOfOrgs, compareOrgs); // ******************* 

    return listOfOrgs; 
    } 

От Javadoc:

java.util.Collections 
public static <T> void sort(List<T> list, Comparator<? super T> c) 
Sorts the specified list according to the order induced by the specified comparator. 
All elements in the list must be mutually comparable using the specified comparator 
(that is, c.compare(e1, e2) must not throw a ClassCastException for any elements e1 and e2 in the list). 
This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort. 
The specified list must be modifiable, but need not be resizable. 
Implementation Note: 
This implementation defers to the List.sort(Comparator) method using the specified list and comparator. 
Parameters: 
list - the list to be sorted. 
c - the comparator to determine the order of the list. A null value indicates that the elements' 
natural ordering should be used. 
+0

Я пробовал это. Он завопил. Огромное спасибо. – hanu

+0

@ hanu - Рад помочь. Пожалуйста, отметьте мой как принятый ответ, нажав галочку. – DSlomer64

+0

@ hanu - ваши «точки репутации» (17) предполагают, что вы новичок в SO, поэтому, возможно, вы не знаете важности принятия ответов: он добавляет ответы на общее количество парней, которые потратили время на то, чтобы дать Ответ, особенно если он действительно работает! Кстати, вы также получаете ответы за принятие ответа, поэтому он работает для нас обоих. – DSlomer64

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