JAVA/java

[java] JAVA Stream 요소삭제 (remove)

닉의네임 2023. 6. 8. 21:56
반응형

신발 사러 왔는데 가방은 쫌 그래요.. 말도 꺼내지마요..

상품중에 가방을 지워보자 

package com.bbongdoo.doo.Streams;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
public class Goods {
    private String name;
    private String type;
}

Goods 객체로 일루어진 List 를 만들어 보자

 

        List<Goods> goods = new ArrayList<>();
        goods.add(new Goods("나이키", "신발"));
        goods.add(new Goods("아디다스", "신발"));
        goods.add(new Goods("리복", "가방"));

 

goods stream 에서 가방만 추출 (filter) 후 리스트 반환 (collect) 리스트 순회하며 goods 에서 삭제 (remove)

 

package com.bbongdoo.doo.Streams;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StreamRemove {

    public static void main(String[] args) {

        List<Goods> goods = new ArrayList<>();
        goods.add(new Goods("나이키", "신발"));
        goods.add(new Goods("아디다스", "신발"));
        goods.add(new Goods("리복", "가방"));

        goods.stream().filter(x -> x.getType().equals("가방")).collect(Collectors.toList()).forEach(x ->
        {
            goods.remove(x);
        });

        goods.stream().forEach(
                x -> {
                    System.out.println(x.getName());
                }
        );
    }
}
반응형