Как искать и сортировать в J2me (по возрастанию или по убыванию) - PullRequest
0 голосов
/ 17 ноября 2011

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

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

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

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

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


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

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

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

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

Когда вы хотите сделатьсопоставьте, затем вызовите

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

Затем разбейте параметр candidate на две строки при кодировании метода matches.

0 голосов
/ 19 ноября 2011

Когда я сохраняю свои данные в 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;
        }
    }
}

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

...