浏览 1233 次
锁定老帖子 主题:实践中的重构30_不做油漆匠
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-15
小强毕业后得到一份街道办油漆匠的工作,工作内容是在马路中间喷涂油漆画线。上班第一天,他拿出一罐环保漆来到他负责的路段,喷涂了300米长的线。“小伙子很给力啊!”街道办徐大妈称赞道,然后给了他300大洋作为工钱。第二天,小强只喷涂了150米。“是不是昨晚没有睡好啊。算了,还是比原来的老王头麻利多了,还是小伙子干活又好又快啊。”徐大妈又掏了150大洋。第三天,小强只喷涂了30米长的马路。“才30米,怎么搞的!明天不用来了!”徐大妈已经不能忍受了。小强一边擦汗,一边委屈的说:“徐大妈,累死我了,现在画一点线要跑好远,油漆罐太远了。” 大家都是当笑话看,可惜这个笑话时不时的发生在你我身上。 public ArrayList<String> generateWords_0(String[] lines) { ArrayList<String> uniques = new ArrayList<String>(); for (int i = 0; i < lines.length; i++) { List<String> words = split(lines[i]); for (int j = 0; j < words.size(); j++) if (!uniques.contains(words.get(j))) uniques.add(words.get(j)); } return uniques; } 一边看这段程序,一边想着油漆匠的故事。油漆匠离我们并不遥远。 这段程序可以使用java集合框架类的特性重构如下。 注意,这段代码的需求必须返回单词的列表集合,但是不关心单词的顺序。 public List<String> generateWords_1(String[] lines) { Set<String> words = new HashSet<String>(); for (String line : lines) { words.addAll(split(line)); } return new ArrayList<String>(words); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |