java - 如何从我的代码中删除重复项

标签 java refactoring

我有两个类似的方法。其中一个打印一些东西,其中一个保存一些东西。如您所见,有很多重复代码。我应该如何重构它并删除这种重复?

public static void printSomething(List<String> list) {
    for (String item : list) {
        if (item.contains("aaa")) {
            System.out.println("aaa" + item);
        }
        if (item.contains("bbb")) {
            System.out.println("bbb" + item);
        } else {
            System.out.println(item);
        }
    }
}

public static Map<String, String> getSomething(List<String> list) {
    Map<String, String> map = new HashMap<String, String>();
    for (String item : list) {
        if (item.contains("aaa")) {
            map.put("aaa", item);
        }
        if (item.contains("bbb")) {
            map.put("bbb", item);
        } else {
            //do nothing
        }
    }
    return map;
}

更新:

代码已更新以解决方法不完全相似时的问题

最佳答案

假设 "aaa""bbb"println 出现的顺序无关紧要,您可以替换以下实现printSomething

public static void printSomething(List<String> list) {
  Map<String, String> map = getSomething(list);
  for(Map.Entry<String, String> entry : map) {
    System.out.println(entry.getKey() + entry.getValue());
  }
}

关于java - 如何从我的代码中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16171125/

相关文章:

java - 为什么 ivyde 看不到我的依赖项之一?

c++ - 我怎样才能避免这种代码重复?

refactoring - 哪些敏捷实践与游戏开发兼容?

javascript - 重构 javascript 'for' 循环

refactoring - 为了清晰起见,重构嵌套的 IF 语句

java - 在GWT中添加html和java脚本代码

java - Java中POST请求体不能包含中文字符

Java:更改 jLabel 前景色

java - 当方法位于基类内部并且测试方法类扩展它时,如何在 JUnit 中模拟方法调用?

Python代码重构问题。将函数应用于多个元素