es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer que un elemento en particular sea nulo en una lista

Tengo el requisito de crear una lista a partir de la lista existente. La lista existente es fila-1[d1,12,p1]fila-2[d1,13,p1]fila-3[d1,14,p1]fila-4[d2,15,p2]fila-5[d2,16,p2]. En la nueva lista necesito reemplazar el p1 en la fila-2 por nulo, y el p2 en la fila-5 por nulo. Esto significa que para cualquier número de filas que comiencen con d1, solo la primera fila debería tener p1 y en el resto de las filas el p1 debería ser nulo, y lo mismo se aplica para d2..dn. En la nueva lista necesito que la segunda entrada del elemento P1 sea nula.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr este requisito, podemos usar código Java con los siguientes pasos:

    1. Crear una nueva lista.
    2. Recorrer la lista existente.
    3. Verificar si la fila actual comienza con d1 o d2.
    4. Si es la primera fila que comienza con d1 o d2, agregarla a la nueva lista sin cambios.
    5. Si no es la primera fila que comienza con d1 o d2, reemplazar la última entrada (que es p1 o p2) con null y agregarla a la nueva lista.
    6. Si la fila actual tiene P1 como segundo elemento, reemplazarlo con null y agregarlo a la nueva lista.
    7. Si la fila actual tiene P2 como segundo elemento, agregarlo a la nueva lista sin cambios.
    8. Devolver la nueva lista como resultado final.

    Aquí está el código de muestra para los pasos anteriores:

    List<string> existingList = Arrays.asList("d1,12,p1", "d1,13,p1", "d1,14,p1", "d2,15,p2", "d2,16,p2");
    List<string> newList = new ArrayList<>();
    String lastD = "";
    for (String row : existingList) {
        String[] elements = row.split(",");
        String d = elements[0];
        String p = elements[2];
        if (!d.equals(lastD)) {
            newList.add(row);
            lastD = d;
        } else {
            elements[2] = "null";
            if (elements[1].equals("P1")) {
                elements[1] = "null";
            }
            String newRow = String.join(",", elements);
            newList.add(newRow);
        }
    }
    

    Después de ejecutar este código, la variable newList contendrá los siguientes elementos:

    [d1,12,p1]
    [d1,,null]
    [d1,,null]
    [d2,15,p2]
    [d2,16,p2]
    

    Es importante tener en cuenta que el segundo elemento en la segunda y tercera filas está vacío, según lo requerido en la pregunta.

Comments are closed.