Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Almaz_1993
168 / 65 / 16
Регистрация: 24.03.2013
Сообщений: 465
Записей в блоге: 1
#1

Query Builder, аля Stream API

27.01.2017, 18:56. Просмотров 182. Ответов 2
Метки нет (Все метки)

Здарова всем!

Задача: реализовать фичу, с помощью которой можно было бы из List<T> отфильтровать Т-шки по какому либо условию, причем условия могут разниться в зависимости от хотелок юзера.

Примерная конструкция:
Java
1
2
List<Fruit> fruits = getFruits();
List<Apples> = QueryExecutor.execute(fruits, where(fruit.color = 'red' or fruit.weight = '90gr') and fruit.type = 'apple').getResult();
Вопрос, куда копать, в какую сторону?

Не по теме:


Java 8 Streams не предлагать, его нельзя использовать

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2017, 18:56
Ответы с готовыми решениями:

Stream API Java 8
Доброго времени суток. На лабораторной работе получил задание, где необходимо использовать Stream...

Задача на Stream API
Здравствуйте уважаемые форумчане! Помогите пожалуйста решить, вот условие: Напишите программу,...

Stream API - FindFirst orElse работает не верно
Здравствуйте, не могу понять, почему stream работает не так, как задумано. Это я чего-то не...

Сравнение элементов двух коллекций через Stream API
Приветствую, комрады! Есть класс Person, содержащий HashMap с данными на человека: class...

Stream API
Запускается, но выводит ошибку в arrayList.forEach((i) -&gt; { public static void...

2
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
27.01.2017, 22:28 #2
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
where(fruit.color = 'red' or fruit.weight = '90gr') and fruit.type = 'apple')
Это откуда такой синтаксис?
Collections2#filter из гуавы к примеру фильтрует по предикату - сделать можно аналогично.
0
xoraxax
1305 / 1257 / 368
Регистрация: 05.07.2013
Сообщений: 6,057
Завершенные тесты: 1
28.01.2017, 01:48 #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
class Filter<T> {
 
    public static <T> List<T> aplly(final List<? extends T> source,
                                    final Predicate<? super T> predicate)
    {
        final List<T> result = new ArrayList<T>(source.size());
        for (T element: source)
            if (predicate.test(element))
                result.add(element);
        return result;
    }
 
}
Java
1
2
3
4
        Predicate<Integer> p1 = i->i>1;
        Predicate<Integer> p2 = i->i<5;
        List<Integer> list = Arrays.asList(a);
        System.out.println(Filter.aplly(list,p1.and(p2)));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2017, 01:48

Запрос c помощью Query Builder в VS.net
Помогите пожалйста Как создать запрос, чтобы условие отбора было написано в нектором текстовом...

C++ Builder Query - UPDATE для двух таблиц
Здравствуйте. Помогите сформировать запрос: Есть 3 таблицы (тема - сессия студентов): 1. Группа...

Удалить из Stream-а все вещественные числа, не используя дополнительных Stream-ов
Здравствуйте. Есть следующая задача: В поток записана последовательность целых и вещественных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru