# removeIf的用法
```java=
public static void main(String[] args) {
String[] arr = {"Hi","How","Are","You"};
List<String> arrList = new ArrayList<>(Arrays.asList(arr));
if(arrList.removeIf((String s) ->{return s.length()<=2;})) {
System.out.println(s+"removed");
}
}
```
### What is the result?
A. Hi removed
**B. Compilation fails.**
C. An UnsupportedOperationException is thrown at runtime.
D. The program compiles, but it prints nothing.
- [x] **Answer:B**
:::info
程式第5行,會顯示請宣告s的區域變數,因為removeIf那邊宣告的s,在第5行是看不見的。所以Compilation fails
:::
:::success
### removeIf : 删除Collection中符合條件的元素,傳回boolean值
範例:
```java=
class Person{
private String name;
private Integer age;
private String gender;
Person(String name,Integer age,String gender){
this.name = name;
this.age = age;
this.gender = gender;
}
//省略getter , setter , toString
```
```java=
List<Person> list = new ArrayList<>();
list.add(new Person("John", 22, "男"));
list.add(new Person("Camiol", 19, "女"));
list.add(new Person("Andy", 34, "男"));
list.add(new Person("Joyce", 30, "男"));
list.add(new Person("Judy", 25, "女"));
list.removeIf(p -> p.getAge()>25);
System.out.println(list);
```
**Console:** 只留下25歲以內的人
```
[
Person [name=John, age=22, gender=男],
Person [name=Camiol, age=19, gender=女],
Person [name=Judy, age=25, gender=女]
]
```
:::
###### tags: `ocpjp`