Как передать два отдельных экземпляра класса за раз в JAVA, чтобы отсортировать некоторые данные в этих классах - PullRequest
0 голосов
/ 13 июня 2019

У меня есть класс, который называется FACTORY.Класс фабрики содержит переменную с именем Time, которая имеет некоторое значение.Я хочу передать два экземпляра моего класса FACTORY вроде (FACTORY A, FACTORY B), чтобы отсортировать доступные данные.Код ниже приведен в быстром.Как я могу реализовать то же самое в JAVA.

Код в Swift

'' '

self.factories = self.factories.sorted { (first: FACTORY, second: FACTORY) in
                var times = [first.Time]

                var firstDate: Time? = nil
                for time in times {
                    if let dateFromTime =  DateFormatter.iso8601TimeFormatter.date(from: time) {
                    }
                }

                times = [second.Time]
                var secondDate: Time? = nil
                for time in times {
                    if let dateFromTime = DateFormatter.iso8601TimeFormatter.date(from: time) {
                    }
                }
                if firstDate != nil && secondDate != nil {
                    return firstDate! < secondDate!
                }
                return false
            }

' ''

1 Ответ

0 голосов
/ 13 июня 2019

Вот пример того, как сортировать фабрики по стоимости их времени.

List<Factory> sortedFactories = factories.stream().sorted((first, second) -> {
            final long time1 = first.getTime();
            final long time2 = second.getTime();
            return time1-time2;
        }).collect(Collectors.toList());

Как это работает:
В первой строке ваши фабрики theList преобразуются в класс потока java8.
После этого вы запускаете алгоритм сортировки (с методом сортировки ((первый, второй) -> [...]);
Алгоритм сортировки java8 работает так:
Алгоритм вызывает ваш компаратор (здесь компаратором является выражение lamba (первое, второе) -> {...});
И ваш компаратор должен вернуть:

A negative integer, zero, or a positive integer as the
first argument is less than, equal to, or greater than the
second.

И ваш список отсортирован по волшебству: D

И, наконец, вы преобразуете Stream в список с помощью .collect (Collectors.toList ());

Я надеюсь, что помогу вам.

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