Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
list.getStream().filter(f -> f.getAge() > 21)
list.getStream().filter((Person f) -> f.getAge() > 21)
persons.getStream().filter(p -> p.getAge() > 21);
?list.add(f)
, вас не смущает отсутствие явного указания типа элементов list? Если нет, то в чем именно разница?С одной стороны, если Java продолжит развиваться и реализовать все вокруг лябмда-выражений, как сделали в Scala, тогда возможно не будет надобности в Scala.
В чем уверено большинство людей, так это в том, что они хотят запускать всякие штуки на JVM, но не хотят использовать для этого синтаксис Java.
person_list.select{|p| p.age > 31 }
. В чем плюс LINQ?DB.Persons.select{|p| p.age > 31 }
DB.Persons.select(function (p) { return p.age > 31; });
DB.Persons.select(p => p.age > 31 );
A sequence of elements supporting sequential and parallel bulk operations. Streams support lazy transformative operations (transforming a stream to another stream) such as filter and map, and consuming operations, such as forEach, findFirst, and iterator. Once an operation has been performed on a stream, it is considered consumed and no longer usable for other operations.
For sequential stream pipelines, all operations are performed respecting in the encounter order of the source, if the source has a defined encounter order. For parallel stream pipelines, unless otherwise specified, intermediate stream operations preserve the encounter order of the source, and terminal operations respect the encounter order of the source, if the source has an encounter order.
from p in persons where p.Name == "John" select p;
То, что вызывает опасения, так это функциональные интерфейсы. При не правильном использовании может вызывать кучу головной боли.???
Для 99.99% ситуаций модель распараллеливания стримов с разворачиванием fork-join пула — явный overkill.
var l2 =
(
for e1 in list1
join e2 in list2 on new {e1.Field1, e1.Field2} equals new {e2.Field1, e2.Field2}
where e1.IntField > 0
select e2.Field3
).ToList()
int i = 1; // vs.
var i = 1;
val i: Int = 1 // vs.
val i = 1
var elements=collection.Where(x=>x.foo>bar).Select(x=>x.baz);
foreach(var element in elements)
{
Dosmth(element);
}
Dictionary<TreeNode<BusinessObject>, IList<TreeNode<BusinessObject>>> childrenByParent = ... а что я вообще собирался сделать? забыл =(
auto i = 1;
// or, more like C++11
auto i {1};
В общем случае в C++ так же,
auto i = 1; // or, more like C++11 auto i {1};
std::initializer_list<int>
Любовь и ненависть к Java 8