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

Query Builder, аля Stream API - Java SE

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

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

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

http://www.cyberforum.ru/java-j2se/thread1551425.html
Примерная конструкция:
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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Query Builder, аля Stream API (Java SE):

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

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

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

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

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

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
1216 / 1171 / 345
Регистрация: 05.07.2013
Сообщений: 5,688
Завершенные тесты: 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++ Builder Query - UPDATE для двух таблиц
Здравствуйте. Помогите сформировать запрос: Есть 3 таблицы (тема - сессия...

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

Ошибка при сохранении xmlDocument в Stream и получение из Stream буфер
Здравствуйте. подскажите пожалуйста в чем проблема. в файл сохраняется отлично,...

stream.read(v,stream.size); //здесь ошибка при исполнении
var stream:Tfilestream; v:variant; begin ...


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

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

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