Java Lambda Lista 转 Mapa

Java Lambda Lista 转 Mapa  


 

En algunos escenarios de desarrollo, la necesidad de filtrar el objeto de lista de la lista y almacenar los datos útiles para el mapa.

Por ejemplo: el objeto de alarma, que comprende un UUID alarma (alarmUuid) y equipo UUID (objUuid), alarma objUuid = -1 necesidades de ser filtrado, y alarmUuid objUuid y almacenada en la forma de pares de clave y valor después de los datos de alarma de filtración al mapa.

 

1, el objeto de alarma se define como sigue:

/ ** 
 * Creado por milagro Luna en 03/16/2020 
 * / 
público  de clase AlarmInfoResponse {
     privada Cadena alarmUuid;
    privada objUuid cadena; 

    pública AlarmInfoResponse (String alarmUuid, Cadena objUuid) {
         este .alarmUuid = alarmUuid;
        este .objUuid = objUuid; 
    } 

    Pública Cadena getAlarmUuid () {
         volver alarmUuid; 
    } 

    Pública  vacío setAlarmUuid (String alarmUuid) {
         este .alarmUuid = alarmUuid; 
    } 

    públicaCadena getObjUuid () {
         regreso objUuid; 
    } 

    Pública  vacío setObjUuid (String objUuid) {
         este .objUuid = objUuid; 
    } 

    @ Override 
    pública Cadena toString () {
         retorno "AlarmInfoResponse {" + 
                "alarmUuid = '" + alarmUuid + '\'' + 
                "objUuid = '" + objUuid + '\'' + 
                '}' ; 
    } 
}

 

2, el código del filtro es la siguiente:

/ ** 
 * Creado por milagro Luna en 03/16/2020 
 * / 
público  de clase LambdaFilterListToMap { 

    públicas  estáticas  void main (String [] args) { 
        Lista <AlarmInfoResponse> alarmInfoResponseList = nuevo ArrayList <> (); 
        AlarmInfoResponse response0 = nuevo AlarmInfoResponse ( "alarm0", "-1" ); 
        AlarmInfoResponse desastres1 = nuevo AlarmInfoResponse ( "alarm1", "1" ); 
        AlarmInfoResponse Respuesta2 = nuevo AlarmInfoResponse ( "ALARM2", "2" );
        AlarmInfoResponse response3 (! "- 1" .equals (alarmInfoResponse.getObjUuid ())) {= Nuevo AlarmInfoResponse ( "Alarma 3", "3" ); 
        alarmInfoResponseList.add (response0); 
        alarmInfoResponseList.add (desastres1); 
        alarmInfoResponseList.add (Respuesta2); 
        alarmInfoResponseList.add (response3); 

        // 方式1:先使用foreach遍历(遍历过程中条件判断) 
        Map <String, String> alarmObjUuidMap1 = nuevo HashMap <> (); 
        alarmInfoResponseList.forEach (alarmInfoResponse -> {
             si 
                alarmObjUuidMap1.put (alarmInfoResponse.getAlarmUuid (), alarmInfoResponse.getObjUuid ()); 
            } 
        }); 
        System.out.println ("=============方式1 ====================" ); 
        alarmObjUuidMap1.forEach ((alarmUuid, objUuid) -> System.out.println (alarmUuid + ":" + objUuid)); 


        // 方式2:使用流过滤,再使用foreach遍历 
        Map <String, String> alarmObjUuidMap2 = nuevo HashMap <> (); 
        alarmInfoResponseList.stream (). 
        filtro (alarmInfoResponse ->! "- 1" .equals (alarmInfoResponse.getObjUuid ())). 
        forEach (alarmInfoResponse -> alarmObjUuidMap2.put (alarmInfoResponse.getAlarmUuid (), alarmInfoResponse.getObjUuid ())); 
        System.out.println ( "\ n =============方式2 ====================" 
        alarmObjUuidMap2.forEach (( alarmUuid, objUuid) -> System.out.println (alarmUuid + ":" + objUuid)); 
    } 
}

 

3. Los resultados son como sigue:

. ============= realización ==================== 1 
Alarma2: 2 
ALARM1: . 1 
Alarma 3: . 3 

====== ======= realización ==================== 2 
Alarma2: 2 
ALARM1: . 1 
Alarma 3: . 3

 

Supongo que te gusta

Origin www.cnblogs.com/miracle-luna/p/12508281.html
Recomendado
Clasificación