Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Collections.replaceAll() vs List.replaceAll() trong Java


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ểmCollections.replaceAllList.replaceAll
LoạiStatic utilityInstance method (Java 8+)
Tham sốList, oldVal, newValUnaryOperator
Hành viThay giá trị cụ thểTransform từng element
Trả vềboolean (đã thay?)void