Определите класс для хранения вашего элемента. Похоже, вы хотите, чтобы он был строкой.
Для этого класса вам нужно определить интерфейс Comparable и поместить логику для сравнения в его абстрактный метод.
int compareTo(T o)
Например:
class MyString extends String
{
@Override
int compareTo(Object obj)
{
// put your logic in here.
// Return -1 if this is "less than" obj.
// Return 0 if this is equal to obj
// Return 1 if this is "greater than" obj.
// Test length first
if (length() < obj.length())
return -1;
if (length() > obj.length())
return 1;
// Lengths are the same, use the alphabetical compare defined by String already
return super.compareTo(obj);
}
}
Отказ от ответственности, я на самом деле не тестировал этот код, но он должен быть близок к тому, что вы хотите.