powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение объектов
2 сообщений из 2, страница 1 из 1
Сравнение объектов
    #39112059
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник вопрос по сравнию строк
http://www.sql.ru/forum/1185931/elasticsearch-sortirovka

Имеется строки ввида

NNN_XXX_LLL1_LLL2

Где
NNN - число от 1 до 100000
XXX - буквы и цифры
LLL1 - long
LLL2 - long

Надо это строчки соортировать снчало по NNN в ржиме возрастания потом по XXX и далее по LLL1

Решил создать bean из этих четерых типов и сравнивать по очереди
Пробелма в том, что в ExecutableScript в ElasticSearch

метод run() должен возвращать Object.

Как можно отсортировать строки (вернуть какое-то определенное значение), чтоб соблюдалось улсовие
...
Рейтинг: 0 / 0
Сравнение объектов
    #39112169
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил через

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
  public static byte[] intToBytes(final int integer) {
    byte[] result = new byte[4];

    result[0] = (byte)((integer & 0xFF000000) >> 24);
    result[1] = (byte)((integer & 0x00FF0000) >> 16);
    result[2] = (byte)((integer & 0x0000FF00) >> 8);
    result[3] = (byte)(integer & 0x000000FF);

    return result;
  }

  public static byte[] longToBytes(long x) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(x);
    return buffer.array();
  }

  public static String hexEncode(byte[] aInput) {
    StringBuilder result = new StringBuilder();
    char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    for (int idx = 0; idx < aInput.length; ++idx) {
      byte b = aInput[idx];
      result.append(digits[(b & 0xf0) >> 4]);
      result.append(digits[b & 0x0f]);
    }
    return result.toString();
  }




И в самом бине

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  public String getHexEncode() {
    // StringBuilder sb = new StringBuilder().append("\"").append(getFirstPart()).append("\"_\"")
    // .append(getSecondPart()).append("\"_\"").append(String.valueOf(getsUpdateDate())).append("\"_\"")
    // .append(String.valueOf(getsUpdateDate())).append("\"");

    StringBuilder hash = new StringBuilder();
    hash.append(Utils.hexEncode(Utils.intToBytes(getFirstPart())));
    hash.append(Utils.hexEncode(getSecondPart().getBytes()));
    hash.append(Utils.hexEncode(Utils.longToBytes(getsIssueDate())));
    hash.append(Utils.hexEncode(Utils.longToBytes(getsUpdateDate())));
    return hash.toString();
  }



Сортирует как надо, может у кого есть другие предложения?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение объектов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]