Crear listas a partir de matrices de elementos en los índices correspondientes.

Soy nuevo en Java 8. Solo me pregunto cómo haría debajo de la operación usando flujos Java 8. Alguna sugerencia

public static void main(String[] args) {
    Integer[] arr1 = new Integer[]{1, 2, 3};
    Integer[] arr2 = new Integer[]{4, 5, 6};
    Integer[] arr3 = new Integer[]{7, 8, 9};

    for(int i=0; i<arr1.length; i++){
        System.out.println(listFromIndex(arr1[i], arr2[i], arr3[i]));
    }
}

private static List<Integer> listFromIndex(Integer e, Integer e1, Integer e2) {
    List<Integer> list = new ArrayList<>();
    list.add(e) ;
    list.add(e1) ;
    list.add(e2) ;
    return list;
}

Salida:

[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
Respuesta 1

Si todas las matrices tienen la misma longitud, puede usar esto:

List<Integer[]> arrays = Arrays.asList(arr1, arr2, arr3);
IntStream.range(0, arr1.length)
        .mapToObj(i -> arrays.stream().map(a -> a[i]).collect(Collectors.toList()))
        .forEach(System.out::println);

Esto crea una lista que contiene todas las matrices. Después de eso, crea una secuencia que itera sobre todas las matrices y recopila las nuevas matrices.

Esto imprimirá el siguiente resultado:

[1, 4, 7]
[2, 5, 8]
[3, 6, 9]

Si tiene matrices con diferentes longitudes, puede usar algo como esto:

Integer[] arr1 = new Integer[]{1, 2, 3};
Integer[] arr2 = new Integer[]{4, 5};
Integer[] arr3 = new Integer[]{7};

List<Integer[]> arrays = Arrays.asList(arr1, arr2, arr3);
IntStream.range(0, arrays.stream().mapToInt(a -> a.length).max().orElseThrow())
        .mapToObj(i -> arrays.stream().map(a -> i < a.length ? a[i] : null).collect(Collectors.toList()))
        .forEach(System.out::println);

Utiliza la longitud de la matriz más grande y comprueba iantes de recopilar las matrices resultantes.

El resultado será este:

[1, 4, 7]
[2, 5, null]
[3, null, null]
Respuesta: 2

primero, no estoy seguro de si esta pregunta pertenece aquí o en serverfault. Estoy usando IzPack para nuestro proyecto. Todo funciona bien en mi máquina local. Lamentablemente en mi jenkins tengo lo siguiente ...

Estoy tratando de descubrir cómo usar adecuadamente los espacios de nombres al crear una API pública a partir de un gran montón de código de implementación. Estoy escribiendo una API para poner una cara pública amigable en todo el código de mi ...

Este es mi código: usuario de clase pública {ID de cadena privada; nombre de usuario de cadena privada; fecha de nacimiento larga privada; dirección de cadena privada; booleano privado habilitado; ...

Estoy convirtiendo un código de la biblioteca Http Client 3.x a la biblioteca Http Components 4.x. El código anterior contiene una verificación para asegurarse de que la respuesta no supera un determinado tamaño. Esto es ...