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

来源:互联网 发布:英伦风的男装品牌 知乎 编辑:程序博客网 时间:2024/05/19 18:39
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 {    @Overrideprotected 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;}}

2 0
原创粉丝点击