1. Collections.replaceAll()
Static method: Collections.replaceAll(List, oldVal, newVal) - thay tất cả oldVal bằng newVal trong list.
Ví dụ
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReplaceAllExample {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("Java");
list.add("Java Script");
list.add("HBase");
list.add("CoffeeScript");
list.add("TypeScript");
System.out.println("Gốc: " + list);
Collections.replaceAll(list, "Java", "JAVA");
System.out.println("Sau replace: " + list);
}
}
Gốc: [Java, Java Script, HBase, CoffeeScript, TypeScript]
Sau replace: [JAVA, Java Script, HBase, CoffeeScript, TypeScript]
Chỉ thay element chính xác bằng "Java", không thay "Java Script".
2. List.replaceAll(UnaryOperator)
Instance method: list.replaceAll(op) - áp dụng function lên từng element.
Ví dụ
import java.util.ArrayList;
import java.util.function.UnaryOperator;
class Op implements UnaryOperator {
public String apply(String str) {
return str.toUpperCase();
}
}
public class Test {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("Java");
list.add("JavaScript");
list.add("CoffeeScript");
list.add("HBase");
list.add("OpenNLP");
System.out.println("Gốc: " + list);
list.replaceAll(new Op());
System.out.println("Sau: " + list);
}
}
Gốc: [Java, JavaScript, CoffeeScript, HBase, OpenNLP]
Sau: [JAVA, JAVASCRIPT, COFFEESCRIPT, HBASE, OPENNLP]
So sánh
| Đặc điểm | Collections.replaceAll | List.replaceAll |
|---|---|---|
| Loại | Static utility | Instance method (Java 8+) |
| Tham số | List, oldVal, newVal | UnaryOperator |
| Hành vi | Thay giá trị cụ thể | Transform từng element |
| Trả về | boolean (đã thay?) | void |