Есть ли у Java SE 8 пары или кортежи?JAVA

Программисты JAVA общаются здесь
Anonymous
Есть ли у Java SE 8 пары или кортежи?

Сообщение Anonymous »

Я играю с ленивыми функциональными операциями в Java SE 8, и я хочу отобразить andex i в паре/кортеж (i, value ) , Затем фильтр на основе второго значения элемент и, наконец, выводит только индексы. эквивалент C ++ pair в Java? В новой жирной эре лямбдас и потоков? В одном из ответов ниже. Тем не менее, это делает не обобщение. Поэтому позвольте мне добавить более общий пример: < /p>

Код: Выделить всё

package com.example.test;

import java.util.ArrayList;
import java.util.stream.IntStream;

public class Main {

public static void main(String[] args) {
boolean [][] directed_acyclic_graph = new boolean[][]{
{false,  true, false,  true, false,  true},
{false, false, false,  true, false,  true},
{false, false, false,  true, false,  true},
{false, false, false, false, false,  true},
{false, false, false, false, false,  true},
{false, false, false, false, false, false}
};

System.out.println(
IntStream.range(0, directed_acyclic_graph.length)
.parallel()
.mapToLong(i -> IntStream.range(0, directed_acyclic_graph[i].length)
.filter(j -> directed_acyclic_graph[j][i])
.count()
)
.filter(n -> n == 0)
.collect(() -> new ArrayList(), (c, e) -> c.add(e), (c1, c2) -> c1.addAll(c2))
);
}

}
Это дает неверный вывод [0, 0, 0] , что соответствует количеству counts Для трех столбцов, которые являются ложными . Мне нужны индексы из этих трех столбцов. Правильный вывод должен быть [0, 2, 4] . Как я могу получить этот результат?

Подробнее здесь: https://stackoverflow.com/questions/243 ... -or-tuples

Вернуться в «JAVA»