Java 8 lambda get and remove element from list

后端 未结 12 1605
说谎
说谎 2020-12-08 12:47

Given a list of elements, I want to get the element with a given property and remove it from the list. The best solution I found is:

Produce         


        
12条回答
  •  猫巷女王i
    2020-12-08 13:08

    the task is: get ✶and✶ remove element from list

    p.stream().collect( Collectors.collectingAndThen( Collector.of(
        ArrayDeque::new,
        (a, producer) -> {
          if( producer.getPod().equals( pod ) )
            a.addLast( producer );
        },
        (a1, a2) -> {
          return( a1 );
        },
        rslt -> rslt.pollFirst()
      ),
      (e) -> {
        if( e != null )
          p.remove( e );  // remove
        return( e );    // get
      } ) );
    

提交回复
热议问题