2017-02-02 6 views
0

Привет У меня есть эти лямбда-выражения в C# .NET для общего списка «Tree», и я пытаюсь найти что-то подобное в Java 7похож на C# .net лямбда поиск Java 7 общий список

Tree.Where(x => x.LeftChildId == Id || x.RightChildId == Id).FirstOrDefault() 
Tree.Where(x => x.Id == NodesCurrentId).First() 

Есть ли способ сделать это без внешней библиотеки?

+0

Java8 принес поддержку лямбды, но нет родной 'Tree' структуры – Aaron

+0

Да @ Аарон ... жаль, что я должен добавил эту информацию .. Дерево - это общий список, который я пытаюсь выполнить ... Список Tree = new ArrayList () – NikiUsefi

+1

Хорошо, тогда вас будет интересовать [streams] (https://docs.oracle.com/) JavaSE/8/документы/API/Java/Util/поток/пакет-summary.html). Я напишу ответ, демонстрирующий его использование в конкретных случаях, о которых вы указали, но вы обязательно должны проверить документацию пакета :) – Aaron

ответ

2

В Java 7 нет такого удобного, как это (эквивалент Lambdas и LINQ), эти вещи были добавлены в Java 8 (так что кажется, что пришло время обновить).

Java-7 эквивалента будет использовать традиционный цикл:

Node result = defaultValue; 
int Id = ...; 
for(Node n : tree) { 
    if(n.LeftChildId == Id || n.RightChildId == Id) { 
     result = n; 
     break; 
    } 
}