码迷,mamicode.com
首页 > 其他好文 > 详细

(行为型模式一)模板方法模式

时间:2015-04-26 12:25:24      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:设计模式

package com.modle;

import java.util.ArrayList;
import java.util.BitSet;
import java.util.List;

/**
 * 模板方法模式
 * @author k560
 *
 */
public abstract class AbstractMap {
	/* 获取重复的数字 */
	protected abstract List<Integer> getSameData(int[] data);
    /*获取重复的数字并且逆序输出*/
	public void showSameData(int[] data) {
		List<Integer> sameData = this.getSameData(data);
		this.show(sameData);
	}
    /*展示重复的数字*/
	private void show(List<Integer> sameData) {
		System.out.println("以下数字有重复");
		for (int i : sameData) {
			System.out.println(i);
		}
	}
	
	public static void main(String[] args) {
		AbstractMap map=new MyMap();
		int[] data=new int[]{8,8,5,6,3,2,1,4,7,5,10,56,89,78,1};
		map.showSameData(data);
	}
}

class MyMap extends AbstractMap {
    
	@Override
	protected List<Integer> getSameData(int[] data) {
		List<Integer> list=new ArrayList<Integer>();
		BitSet bs = new BitSet();
		for (int i : data) {
			if (bs.get(i) == false) {
				bs.set(i, true);
			} else {
                list.add(i);
			}
		}
		return list;
	}

}

(行为型模式一)模板方法模式

标签:设计模式

原文地址:http://blog.csdn.net/h348592532/article/details/45287069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!