Performance 为列表中的每个字符串使用replaceAll的最佳方法<;字符串>;

Performance 为列表中的每个字符串使用replaceAll的最佳方法<;字符串>;,performance,java-8,Performance,Java 8,我有一个映射,其中包含regexpr作为键和replacer作为值,我需要为列表中的每个字符串执行replaceAll 我想知道我的答案是否正确,或者是否有更好的方法,我担心性能会下降。因为我需要对包含大量字符串的大量列表执行此操作 Map<String,String> m_replace = null; //Map which contains regexpr,replacer private static String replace(String s) { for (

我有一个映射,其中包含regexpr作为键和replacer作为值,我需要为列表中的每个字符串执行replaceAll

我想知道我的答案是否正确,或者是否有更好的方法,我担心性能会下降。因为我需要对包含大量字符串的大量列表执行此操作

Map<String,String> m_replace = null; //Map which contains regexpr,replacer

private static String replace(String s) {
    for (Map.Entry<String, String> entry : m_replace.entrySet())
        s = s.replaceAll(entry.getKey(), entry.getValue());
    return s;
}

public List<String> parseList(List<String> input) {
    return input.parallelStream()
                .map(p -> p = replace(p))
                .collect(Collectors.toList());
}
Map m_replace=null//包含regexpr、replacer的映射
专用静态字符串替换(字符串s){
对于(Map.Entry:m_replace.entrySet())
s=s.replaceAll(entry.getKey(),entry.getValue());
返回s;
}
公共列表解析列表(列表输入){
返回input.parallelStream()
.map(p->p=replace(p))
.collect(Collectors.toList());
}

我认为这对@Otha来说是一个足够好的问题,你应该只更换一次吗?我的意思是,一旦你成功地应用了一个
replaceAll
(意味着该模式已被实际找到),你是否应该停止处理所有其他地图条目?@Eugene否,我可能必须在同一行上应用多个模式,顺便说一句,谢谢你纠正我:)@Otha对于
列表中的每个元素,你必须遍历整个
地图
,然后…@Otha据我所知,复杂性是:
O(n)
对于
地图
的列表时间
O(n+c)
;其中c-是地图的容量,n是条目数。这将是总共
O(npow2)
。我认为这对于@Otha来说是一个足够好的问题,你应该只替换一次吗?我的意思是,一旦你成功地应用了一个
replaceAll
(意味着该模式已被实际找到),你是否应该停止处理所有其他地图条目?@Eugene否,我可能必须在同一行上应用多个模式,顺便说一句,谢谢你纠正我:)@Otha对于
列表中的每个元素,你必须遍历整个
地图
,然后…@Otha据我所知,复杂性是:
O(n)
对于
地图
的列表时间
O(n+c)
;其中c-是地图的容量,n是条目数。这将是总共
O(npow2)