Платформа программирования J2ME для портативных устройств

         

Этот компаратор записей


/*'*

Этот внутренний класс реализует RecordComparator,

чья политика заключается в выполнении сортировки по алфавиту.

*/

class AlphabeticalOrdering implements RecordComparator

/**

Конструктор No-arg.

*/

public AlphabeticalOrdering()

}

super();
)

public int comparelbyte [] reel, byte [] rec2)

ByteArraylnputStream baisl =



new ByteArraylnputStream(reel);

DatalnputStream disl = new DatalnputStream (baisl);

ByteArraylnputStream bais2 -

new ByteArraylnputStream(rec2);

DatalnputStream dis2 = new DatalnputStream(bais2);

String namel = null;

String name2 = null; try

(

namel = disl.readUTF ();

name2 = dis2.readUTF () ;

catch (lOExceotion ioe)

ioe.pnntStackTrace () ;

}

if (namel == null I| name2 == null) return 0;

int result = namel.compareTo(narae2);

if (result < 0)

return RecordComparater.PRECEDES;

else if (result == 0)

return RecordComparator.EQUIVALENT;

else

return RecordComparator.FOLLOWS;

}

}

Ваша адресная книга может использовать этот новый компаратор для лексикографической сортировки списка имен, извлеченных из хранилища записей. Например, чтобы отсортировать имена, выведенные поиском, вы просто создаете экземпляр вашего нового компаратора и пересылаете его как второй аргумент в вызов enumerateRecords (). Следующий фрагмент кода, показанный в листинге 7.5, является новой версией вызова метода getMatchesByName(String matchKey) в классе AddressBook.



Содержание раздела