[Java] Хочу мапить и фильтровать коллекции в функциональном стиле
хотя есть и plain java.
Вообще от этих функциональных наворотов устаешь где-то через месяц. Веселье заканчивается, и оказывается, что легче в итоге не стало.
Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems employing some functional programming techniques but without losing the static typing of java. We impose this last constraint to make refactoring easier and safer and allow the compiler to do its job. In a word, lambdaj partially eliminates the burden to write (often nested and poorly readable) loops while iterating over collections by allowing to filter, convert, group, aggregate and sort their items without to write a single explicit loop.
Пользуюсь гугловскими коллекциями, очень доволен. Ловлю себя на том, что стал часто пользоваться функциональными фичами. Например там есть класс Pair<T1,T2> - обычный immutable tuple длины 2. Если я вижу, что по логике функция должна возвращать пару величин, то использую Pair<T1,T2> как возвращаемое значение. Вопрос, это считается хорошей практикой или нет? Кроме того, считается ли в реальном проекте, который будут поддерживать много человек, допустимым писать такой код?
у себя в коде на стадии девелопменат бывало создавал класс Pair
но потом в окончательный вариант оно никогда не входило, убивалось при рефакторинге
ну это по-любому лучше, чем возвращать Object[] или не дай Бог нетипизированный Collection, чем грешит один товарищ в моем проекте ...
Оставить комментарий
Gaishnik
Хочу писать такой кодApache Commons Collections выглядит довольно хорошо, но там все реализовано без дженериков, поэтому чтобы замапить список приходится писать 20 строк быдлокода. Какая библиотека самая стандартная для такой цели?