Можно ли передавать / отображать серию значений в один результат с помощью метода точечной нотации? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь сделать что-то подобное.

public static int generateKey(Collection<Column> currentColumns, Object entry) {
    int hash = 0;
    for (Column c : currentColumns) { 
        hash = Objects.hash(hash, c.getHashValue(entry));
    }
    return hash;
}

Но я знаю, что Objects.hash() может принимать много параметров в виде точечной записи, поэтому мне интересно, могу ли я передавать из коллекции currentColumnsкаждый результат от getHashValue() до Objects.hash метода?

Мои попытки не стоят того, чтобы делиться ими, так как я не смог найти никаких указаний на то, возможно ли это.

edit - Для некоторого контекста реального мира я делаю что-то вроде запроса SQL наКоллекция Entry Objects для генерации сводки gorupBy / aggregate и любой части объекта, сгруппированной по ней, должна быть отключена, поэтому я использую эту вещь для генерации ключа для сборщика groupingBy.Если мои результаты превышают определенную длину, столбцы удаляются, чтобы попытаться уменьшить количество строк, и затем повторяют попытку с уменьшенным набором столбцов.

1 Ответ

0 голосов
/ 01 марта 2019

Поскольку vararg по сути является синтаксическим сахаром для массива, вы можете сделать что-то вроде этого:

Object[] array = myObjects.stream().map(MyObject::getAValue).toArray();
int hash = Objects.hash(array);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...