despedida eficiente 996, abriendo la puerta de programación Java 2-8 combate eficaz: la determinación de las expresiones lógicas paramétrica -Lambda

1.1 Key

1.2 Programación Código

 

 

1.1 Key

Nota: jdk8 tiene en orden con las expresiones lambda

En esta sección se describe brevemente el uso de las expresiones lambda, se refiere a los casos de uso específicos 2-15

El uso de las expresiones lambda, se refiere a la clase de prueba VerSionTestF

 

 

1.2 Programación Código

Mercancías misma clase entidad :( 2-3)

:( misma clase de enumeración 2-3)

 

Clase de las mercancías:

Pena de paquete para com.imooc.zhangxiaoxi.lambda.cart; Importación java.util.ArrayList; Importación java.util.List; pública clase CartService { / ** * clases internas anónimas, existe el riesgo de pérdida de memoria, no hace referencia a los proyectos de producción, pero para respaldar la expresión lambda referencias * / privada lista estática <Sku> = skuList nueva nueva ArrayList <Sku> () {{Add ( nueva SKU (2.020.001, "vehículos aéreos no tripulados", 999.00,1,999.00 , SkuCategoryEnum.ELECTRONICS)); la opción Agregar ( nueva SKU (2.020.002, "la camiseta", 50.00,2,100.00 , SkuCategoryEnum.CLOTHING)); el Add ( nueva SKU (2.020.003, "Of Human Bondage", 30.00,1,30.00 , SkuCategoryEnum.BOOKS)); el Add ( nueva nueva SKU (2020004, "viejo", 20.00,1,20.00 , SkuCategoryEnum.BOOKS)); el Add (

(); para(SKU SKU: skuList) { IF (. Sku.getSkuCategory () los equals (SkuCategoryEnum.ELECTRONICS)) {lElectronicsList.add (SKU);}} / * for (int i = 0; I <skuList.size (); I ++ ) {SI (skuList.get (I) .getSkuCategory () los iguales (SkuCategoryEnum.ELECTRONICS)) {lElectronicsList.add (skuList.get (I)) ;.}} * / retorno lElectronicsList;} / ** * * versionTestB sola dimensiones parámetros de condición de la enumeración de entrada diferente, imprimir una lista de los diferentes productos * * Tenga en cuenta que el segundo argumento: cómo la transferencia de parámetros de clase de enumeración * * * @ param skuList * @return * / pública lista estática <Sku> filterSkuListByParam (List <Sku> skuList, skuCategoryEnum skuCategoryEnum) {List <Sku> = lElectronicsList nueva nueva ArrayList <Sku> (); for (0 = I int; I <skuList.size (); I ++ ) { IF (skuList.get (I) .getSkuCategory () los equals (skuCategoryEnum)) {lElectronicsList.add (skuList.get (I)) ;.}} retorno lElectronicsList;} / ** * versionTestC * * * huevo y un método puede ser uno de los parámetros se determina según dos parámetros, * * Si la bandera es cierto, tipo enumerado se determina, por lo demás de acuerdo con el precio total se determina * * @param skuList * @return * / pública lista estática <Sku> filterSkuListByParamB (List <Sku> skuList, skuCategoryEnum skuCategoryEnum, dTotalPrice doble, Boole En Bandera) {List <Sku> = lElectronicsList nueva nueva ArrayList <Sku> (); for ( int i = 0; I <skuList.size (); I ++ ) { if ((&& En Flag. SkuList.get (I) .getSkuCategory () los iguales (skuCategoryEnum)) || .getTotalPrice ()> (&& skuList.get En la bandera (I!) DTotalPrice)) {lElectronicsList.add (skuList.get (I));}} regreso lElectronicsList;} / ** * * versionTestD tal enfoque no es recomendable para la producción, la clase va a causar una explosión. Todo para la expresión lambda se introduce * * @ param skuList * @return * / pública lista estática <Sku> filterSkuListByParamPrediCate (List <Sku> skuList, SkuPrediCate skuPrediCate) {List <Sku> = lElectronicsList nueva nueva ArrayList <Sku> (); para ( int i = 0; I <skuList.size (); I ++ ) { IF (skuPrediCate.test (skuList.get (I))) {lElectronicsList.add (skuList.get (I));lElectronicsList; }}

 

Predicado Interfaz:

Paquete com.imooc.zhangxiaoxi.lambda.cart; / **  * verbo interfaces de * / público interfaz SkuPrediCate { booleana prueba (SKU SKU);}


 

 

 

categorías de prueba:

empaquetar com.imooc.zhangxiaoxi.lambda.cart; 

importación com.alibaba.fastjson.JSON;
importación org.junit.Test; 

importación java.util.List; 

público  de clase VersionTestF { 

    @test 
   pública  vacío filterSkuListByParam () { 
       Lista <Sku> skuList = CartService.getSkuList ();
        / ** 
         *使用lambda表达式查询总价大于1000的
         * / 
        Lista <Sku> getParamSkuList = CartService.filterSkuListByParamPrediCate (skuList,
                 (SKU SKU)  -> sku.getTotalPrice ()> 1000 ) ; 
        System.out.println (JSON.toJSONString (getParamSkuList, verdadera )); 
    } 

}

 

Imprimir registro:

[ 
    { 
        "SkuCategory": "Sprots" , 
        "skuId": 2020007 , 
        "SKUNAME": "杠铃" ,  "skuPrice": 2000.0 ,  "totalNum": 1 , "TotalPrice": 2000,0 }, { "skuCategory": "ELECTRONICS " "skuId": 2020008 , "SKUNAME":" ThinkPad" , "skuPrice": 5000.0 , "totalNum": 1 , "TotalPrice": 5000,0 }] Proceso terminó con código de salida 0

 

Supongo que te gusta

Origin www.cnblogs.com/1446358788-qq/p/12624245.html
Recomendado
Clasificación