Java - Recuperar valores individuales de una lista en un mapa

Parece que estás sobreingeniería de alguna manera.

StreamPrimero responderé con una solución, solo por intentarlo.
Tenga en cuenta que, personalmente, prefiero el enfoque iterativo "antiguo" (ver más abajo).

// You can see by the use of AtomicInteger that this isn't the right road to take!
final AtomicInteger i = new AtomicInteger();
final Collection<List<String>> values1 =
        mapOne.values()
              .stream()
              .flatMap(v -> v.stream())
              .collect(partitioningBy(o -> i.getAndIncrement() % 2 != 0))
              .values();

Salida: [[Robert, John, Tereza, James], [Redford, Travolta, May, Joyce]]


Enfoque iterativo

final Collection<String> names = new ArrayList<>();
final Collection<String> surnames = new ArrayList<>();

for (final List<String> value : mapOne.values()) {
    names.add(value.get(0));
    surnames.add(value.get(1));
}

Salida:

[Robert, John, Tereza, James]
[Redford, Travolta, May, Joyce]

Esto es seguro porque sabes que cada interior Listtiene dos elementos.


Lo que JB Nizet te está diciendo que hagas (crédito para él por escribir eso), es básicamente crear un apropiado class

public class Person {
   private String profession;
   private String name;
   private String surname;

   // Getters and setters. JavaBean style
}

Y proceda a ordenar a Collection<Person>.
Por ejemplo, mantenerlo lo más simple posible

final List<Person> persons = new ArrayList<>();

// Populate list

Collections.sort(persons, (p1, p2) -> {
    // Not null-safe
    return p1.getName().compareTo(p2.getName());
});

Esto ordenará la lista por name. No devolverá una nueva Lista, sino que simplemente modificará la entrada.

Respuesta 1

Recibo el NoClassDefFoundError después de ejecutar el archivo JAR de mi proyecto. La depuración con Eclipse funciona bien, pero aparece este error cada vez que uso el comando de Windows java -jar myproject.jar ya que ...

Necesito verificar el título de una página web después de iniciar sesión. Usando el controlador de Chrome para el selenio, el título de la página después de iniciar sesión es correcto, pero no el controlador de Firefox. El resto del código permanece igual, ...

¿Necesita devolver objetos diferentes en el mismo método? ¿Es posible devolver? public class Smoketest () {objeto protegido getLabTopology () {if (labTopology == null) {...

He creado el Servicio en Android y se está ejecutando cuando voy a MapActivity. Si regreso de MapActivity con el botón Atrás, quiero detener el servicio. ¿como hacer eso?