Вы можете просто использовать flatMap
как:
List<SomeObj> objs = topLevel.getMidLevels().stream()
.flatMap(a -> a.getLowLevels().stream().map(b -> topBuilder.apply(a).apply(b)))
.collect(Collectors.toList());
со своими сущностями, аналогичными:
class TopLevel {
List<MidLevel> midLevels;
}
class MidLevel {
List<LowLevel> lowLevels;
}
class LowLevel {
}
class SomeObj {
}
Вот другое решение, которое позволяет Вам записать математику и объяснения, не чередуя их в источнике.
\newcommand\aligntext[1]{&\text{#1}\\} \[\begin{aligned} a+b&=c\\ x&=y\\ c&=d+e \end{aligned} \hspace{1em} \begin{aligned} \aligntext{text 1} \\ \aligntext{text text text} \end{aligned}\]
Существует несколько различных способов решить эти виды проблем. (Вышеупомянутый код не позволит каждой строке уравнения быть пронумерованной, например.), А также amsmath, хорошо смотреть на mathtools пакет также.
Вы могли использовать стандарт eqnarray
среда или взгляд на более мощные инструменты, доступные в amsmath
пакет.
При использовании eqnarray
, Вы поместили бы, по крайней мере, на привязку к положениям между работой и текстом как это
\begin{eqnarray}
a = b + c = 12m & & \mbox{measure of length of great importance}\\
b = 6m & & \mbox{a measure of length}\nonumber\\
...
\end{eqnarray}
строки пронумерованы по умолчанию, но \nonumber
подавит это. Предотвратить любое использование номеров строки eqnarray*
вместо этого.
Если Вы настаиваете, Вы могли бы использовать таблицы также, но я не рекомендую это. Если Вы делаете, сохраните целую формулу в отдельной ячейке как:
\begin{tabular}{cl}
$a = b + c = 12m$ & \mbox{measure of length of great importance}\\
$b = 6m$ & \mbox{a measure of length}\\
...
\end{tabular}
это делает нумерацию трудно.
Да, выравнивание является общим падежом, и поддерживаемый хорошо в ЛАТЕКСЕ. Вы хотите использовать выровнять среду (\begin{align} ... \end{align}
). В этом каждая строка ЛАТЕКСА (разделенный с \) будет соответствовать одной формуле, и можно выбрать, какой символ требуется выровнять на каждой строке путем размещения амперсанда (и). В Вашем примере:
\begin{align}
a = b + c &= 12m\\
b &= 6m\\
c &= 8m\\
\end{align}
Должен сделать что-то как то, что Вы после (в зависимости от того, как Вы хотите выровнять первую строку). Это пронумерует каждое уравнение для ссылки в тексте; если это не требуется или желаемо, используйте выравнивание* среда вместо этого. При добавлении звезды после того, как имя среды является общей идиомой в ЛАТЕКСЕ, что означает, "не нумеруют их" и может использоваться для разделов и т.д также.
Править: Вот другая интерпретация выравнивания, я думаю, что Вы хотите:
text text text text text text text text text text text text
text text text text text text text text text text text text
\begin{align*}
a = &b + c = 12m &\text{measure of length of great importance}\\
&b = 6m &\text{a measure of length}\\
&c = 8m &\text{another measure of length}\\
& &\text{and it is in meters}
\end{align*}
Примечание:
align
математическая среда.Я рекомендовал бы абстрагировать далеко от, выравниваются и использующий это:
\begin{tabular}{rcll}
$a$ & $=$ & $12m$ & measure of length of great importance \\
$b$ & $=$ & $6m$ & a measure of length \\
\end{tabular}
Можно быть первым человеком, которого я когда-либо слышал, описывают ЛАТЕКС как "удобный для пользователя" ;-)
Так или иначе не совсем ясно, пытаетесь ли Вы выровнять определенные части уравнений или просто центрировать их. Существуют различные среды уравнения для различных видов выравнивания, например, gather
среда, которая центрирует каждое уравнение на его собственной строке.
Примечание стороны: я рекомендовал бы смотреть на Не Так Краткое введение в LaTeX2e, который является, как я начал изучать ЛАТЕКС и Руководство пользователя к amsmath Пакету, который описывает различные виды доступного выравнивания.
Я не попытаюсь рассмотреть Ваш вопрос непосредственно, так как это, кажется, было обращено выше. Я однако предложу, чтобы Вы попробовали LyX для упрощения себя в мир TEX. Это дарит графическому интерфейсу непосредственный предварительный просмотр, который может быть более интуитивен пообещанный Ваше образование, использующее и так далее. Это положилось на ЛАТЕКСНУЮ основу, таким образом, Вы используете ЛАТЕКСНЫЕ команды когда это применимо, но это все еще (по-моему), намного более легкое введение в Техас.