2015-11-04 2 views
0

Arraylist содержит класс модели. Класс имеет параметр «статус», значения которого будут «открытыми», «закрытыми», «предстоящими».Сравнение Arraylist со строковыми условиями

Как отсортировать архаиста на основе параметра «статус» i.e «сначала» должен появиться первым, «закрыть» & «предстоящий» будет следовать за ним соответственно?

Любая помощь приветствуется ..

+1

готовы помочь, попробуйте, отправьте код f или нас тоже начать. –

ответ

1

Вам просто нужно реализовать Сопоставимые интерфейс для вашей модели класса

Затем реализовать метод CompareTo с вашей логикой сравнения.

И позвоните по телефону Collections.sort(yourModelList);, чтобы сделать это.

Вы можете найти пример реализации интерфейса Comparable here.

Надеюсь, это поможет.

-1

Если элементы в списке не имеют представления о естественном порядке, сделать не изменения YourClass для реализации Comparable<YourClass>.

Вместо реализации Comparator<YourClass>, который является совершенно отдельный класс:

class YourClassComparator implements Comparator<YourClass> { 
    @Override 
    public int compare(YourClass a, YourClass b) { 
    // ... 
    } 
} 

, а затем передать экземпляр это Collections.sort:

Collections.sort(yourModelList, new YourClassComparator()); 
+0

@Downvoter: помогите объяснить? –

0

Попробуйте эту логику

if(value.equals("open")) 
{ 
    modelclass.setstatus("0"+value) 
} 
else if(value.equals("close")) 
{ 
    modelclass.setstatus("1"+value) 
} 
else 
{ 
    modelclass.setstatus("2"+value) 
} 

Collections.sort(yourModelList); 

sorting arralist as per your need done and after that remove first character from that string like 

String value_result=modelclass.getstatus.substring(1); 
+0

Мутирование данных чисто сортировать не нужно (в лучшем случае) и опасно в худшем случае - что, если при сортировке выбрано исключение? Это оставит ваши данные в коррумпированном состоянии. Что делать, если другой поток обращается к тем же данным? и т. д. Он также может работать только так, если статус является строкой. –

+0

моя логика правильна согласно его требованию. это ответ на базовый уровень, и если вопросник не знает о классе сравнения, то выше ответ полезен –

+0

Спасибо Кетан за вашу помощь. Я знаю об использовании Comparable & Comparator в java. Ответ Нанока помог мне понять, исходя из условий, как мы можем достичь этого. –

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