Uso común de la función java8 Stream

Recientemente, en el desarrollo, vi a mis colegas usar flujo para la conversión de datos de colecciones List<object> ->List<String>

List<object> --> Map<Long, object>, se siente muy simple y conveniente. Encontré información en Internet para aprender

Flujo de Java 8 | Tutorial para principiantes

Registrar nuestro uso común

.stream() : crea un flujo en serie para una colección

1、Lista<Objeto> --> Lista<Cadena>

//List<Object>    -->  List<String>	
List<User> resultList = new ArrayList<>();	
List<String> newList = resultList.stream().map(e -> e.getName()).collect(Collectors.toList());


// List<map>   -->  List<String>
List<String> contractIds = array.stream().map(m -> MapUtils.getString(m, "contractId").toString()).collect(Collectors.toList());

2、Lista<Usuario> --> Mapa<Largo, Usuario>


List<User>  -->   Map<Long, User>
List<User> resultList = new ArrayList<>();	
Map<Long, User> idToUser = resultList.stream().collect(Collectors.toMap(User::getId, (user -> user)));

3、List<Map<String, Object>> --> Map<String, Integer> countMap

     Lista<usuario> --> Mapa<Cadena, Entero> contarMapa

List<Map<String, Object>> reList = stdGoodsTempDao.queryCountByRegcardnm(paramMap);
Map<String, Integer> countMap = reList.stream().collect(Collectors.toMap(map -> (String) map.get("regcardnm"), (map -> (Integer) map.get("goodsCount"))));
//  List<user>  --> Map<String, Integer> countMap
Map<Integer, String> countMap = list.stream().collect(Collectors.toMap(e -> e.getId(), e -> e.getBillNum()));

4. .stream().parallel().forEach implementa fácilmente subprocesos múltiples

List<StdRegcardTemp> lists=new ArrayList<>(10);

lists.stream().parallel().forEach(item -> { //具体处理 });

5. Obtenga el dato con el valor máximo de un determinado campo,

.stream().max(Comparator.comparing(Estudiante::getRecord)).get();

Student student = stu.stream().max(Comparator.comparing(Student::getRecord)).get();

6. lista<objeto> --> lista<objeto> Obtiene la devolución que cumple las condiciones 

  .filter( Obtener los datos de tipo =1 

List<Cycle> cycleStream = cycleList.stream().filter(
        cycle -> 1.equals(cycle.getType())).collect(Collectors.toList());

7. lista<objeto> --> lista<Entero> Obtiene el número que cumple la condición y saca el campo especificado

        List<Integer> projectConfigIds = cycleList.stream().filter(
                cycle -> "1".equals(cycle.getType()))
                .map(Cycle::getId)
                .collect(Collectors.toList());

8. Modifique el valor del atributo del objeto y modifique por lotes un cierto valor del objeto en la lista

        StdSubcodeBhs = StdSubcodeBhs.stream().peek(x -> x.setSubmitState(1)).collect(Collectors.toList());

9. Lista de deduplicación

    List newList = (List) list.stream().distinct().collect(Collectors.toList());

10. Conversión de tipo de campo List<Integer> --> List<String>

List<Integer> declareTypes =  new ArrayList();
List<String> declareTypes1 = declareTypes.stream().map(String::valueOf).collect(Collectors.toList());

----La siguiente es una extensión de referencia

el uso del filtro se refiere a este artículo, bien escrito

Stream filter() filtra el blog-CSDN de data_popcorn9958 válido blog_stream.filter

Supongo que te gusta

Origin blog.csdn.net/qq_37570710/article/details/122466763
Recomendado
Clasificación