Java 8 流向每个元素添加 1,如果列表中的元素为 5,则删除

Java 8 stream add 1 to each element and remove if element is 5 in the list

List<Integer> list = new ArrayList<>();
for(int i=0;i<20;i++) {
   list.add(i)
}

在这里,我想为每个元素添加 +1,如果元素是 5,则从列表中删除元素。

list.stream()
    .filter(x -> x != 5)           // filter out the number 5 before incrementing the numbers. Put this statement 2 lines below if you want to remove 5 after incrementing
    .map(x -> x + 1)               // add 1 to each number
    .collect(Collectors.toList()); // create list from stream

可以使用removeIf方法,是ArrayList的一个简单方法Class。您可以按照此 link 进行清楚的解释。 https://www.geeksforgeeks.org/arraylist-removeif-method-in-java/

您可以根据需要早晚使用此方法。

List<Integer> list = new ArrayList<>();

for(int i = 0; i < list.size(); i++) {
   list.set(i, list.get(i) + 1);
}

list.removeIf(n -> (n == 5)); //removeIf method