Как искать и сортировать в J2me (по возрастанию или по убыванию)

Я задаюсь вопросом о том, как искать в J2ME. Я искал в Интернете, так много результатов показывают мне, и я вижу на Java2s.com я получил результат использования RecordFilter и соответствует методу для поиска в хранилище записей.

Но моя проблема в том, что мне нужно передать в него 2 или более параметров. Как можно привести совпадения с этим параметром?

И как сортировать по убыванию или по возрастанию, как пузырьковая сортировка?

2 ответа

Решение

Объедините ваши поиски в одну строковую переменную. Разделите каждого из них ; например. В коде matches Метод взорвать строку, чтобы получить каждый критерий поиска. Чтобы сделать фильтр действующим, создайте экземпляр SearchFilter и вызовите matches метод с конкантированной строкой в ​​качестве параметра. Для sort реализовать RecordComparator интерфейс; реализовать compare метод для построения ваших критериев сортировки. Сделайте поиск в Google о j2me+recordcomparator, чтобы увидеть примеры того, как сделать сортировку.


РЕДАКТИРОВАТЬ:

В коде matches Метод взорвать параметр String, полученный из параметра byte[]. Лечить каждую взорванную строку, чтобы сделать критерии. Как я понимаю, вы хотите передать две строки в качестве критерия поиска, когда вы написали:

SearchFilter search = new SearchFilter(txtSearch.getString(), strType);

Так что в конструкторе должно быть два параметра!!!

Если вы хотите сделать сопоставление, позвоните

if searchFilter.matches((search1+";"+sType).getBytes())

Затем взорвать candidate параметр в две строки, когда вы кодируете matches метод.

Когда я сохраняю свои данные в RMS, я сохраняю их в виде строки [], как будто я хочу сохранить имя, возраст, зарплату,EmpID для каждого сотрудника, сохраняю его, создаю массив и преобразую его в байты, а затем сохраняю в RMS. Когда я получаю его, я делаю обратный процесс. Теперь, если я хочу получить сотрудника с именами, начинающимися с A и с зарплатой 10000, я использую следующий фильтр

class UtilFilter implements RecordFilter{    
    public UtilFilter(String str_searchText,String str_searchText1)
    {
            this.str_searchText = str_searchText.toLowerCase();
            this.str_searchText1 = str_searchText1.toLowerCase();
    }
    public boolean matches(byte[] bt_byteData)
    {
      String str_str = "";
      String str_str1 = "";
      //here goes code how u get back ur String[] from RMS say u get it in Data
      str_str = Data[0].trim();
      str_str1 = gd_cd.Data[2].trim();

      if(str_searchText != null && str_searchText1 != null && str_str.equals(str_searchText) && str_str1.equals(str_searchText1 ))
        {
              return true;
        }
        else
        {
              return false;
        }
    }
}

Таким образом, я могу отфильтровать любые параметры. Надеюсь, это поможет!:)

Другие вопросы по тегам