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