您的位置:首页 > 运维架构 > Nginx

keepalived+nginx 学习笔记

2012-05-14 10:44 337 查看
package com.liuxt.sort;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;

public class SortTemplate {

 private Map<String,Sort> sortMap=new HashMap<String,Sort>();

 private int maxElement = 100000;
 
 private int dataLength=5000;

 private Properties sortProperties = new Properties();
 
 
 
 
 /**
  * 构造一个模版类
  * @throws Exception
  */
 public SortTemplate() throws Exception{
    this.loadSortAlgorithm();
 }
 
 /**
  * 从当前的类路径下获取文本文件,把配置内容独到该类的Map结构中。
  * @throws Exception
  */
 private void loadSortAlgorithm() throws Exception {

  InputStream inputStrem = this.getClass().getClassLoader()
    .getResourceAsStream("com/liuxt/sort/sort.properties");
  if (inputStrem != null) {
   try {
    sortProperties.load(inputStrem);
    //System.out.println(sortProperties);
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
  String sortName="";
  for(int i=0;i<SortUtil.sortNames.length;i++){
   sortName=SortUtil.sortNames[i];
   this.sortMap.put(sortName,this.instantiate(sortName));
  }
  
 }
 
 
 /**
  * 根据算法取对应的算法子类实例。
  * @param name
  * @return
  */
 public Sort getSortByName(String name){
  return this.sortMap.get(name);
 }
 
 
 /**
  * 根据算法的名字,实例化对应的子类。
  * @param name
  * @return
  * @throws Exception
  */
 private Sort instantiate(String name) throws Exception {
  String className = (String) this.sortProperties.get(name);
  Sort sort = null;
  if (className != null) {
   try {
    sort = (Sort) Class.forName(className).newInstance();
   } catch (Exception e) {
    //e.printStackTrace();
    throw e;
   }
  }
  return sort;

 }
 
 
 

 
 
 
 /**
  * 根据算法的名称,去排序。
  * @param name
  * @param data
  * @throws Exception
  */
 public void sortDataByName(String algorithmName ) throws Exception {
  Sort sort=this.sortMap.get(algorithmName);
  if(sort==null){
   throw new Exception("选择无效的算法");
  }
  int[] data=SortUtil.createData(this.dataLength,this.maxElement);
  TimeWatch timeWatch=new TimeWatch();
  timeWatch.start();
  sort.sortData(data);
  timeWatch.stop();
     //displayData(data);
  timeWatch.showElapsedTime();
  SortUtil.showResult(data);
     
 }

 
 /**
  * 获取排序算法的所有名字。
  * @return
  */
 public String[] getSortNames() {
  String[] names=new String[this.sortMap.size()];
  Iterator iterator=this.sortMap.keySet().iterator();
  int i=0;
  while(iterator.hasNext()){
   names[i++]=(String)iterator.next();
  }
  return names;
  
 }

 
 public int getMaxElement() {
  return maxElement;
 }

 public void setMaxElement(int maxElement) {
  this.maxElement = maxElement;
 }

 /**
  * 用所有的排序算法排序,收集数据
  *
  */
 public void sortDataByAll() {
  String[] sortMethods=this.getSortNames();
  int[] tempData;
  Sort sortInstance=null;
  for(int i=0;i<sortMethods.length;i++){
   tempData=SortUtil.createData(this.dataLength,this.maxElement);
   sortInstance=this.getSortByName(sortMethods[i]);
   TimeWatch timeWatch=new TimeWatch();
   timeWatch.start();
   sortInstance.sortData(tempData);
   timeWatch.stop();
   SortUtil.setTime(sortMethods[i],timeWatch.getTimeInMillis());
   
  }
  SortUtil.showTimeStatistic();
  
 }

 public int getDataLength() {
  return dataLength;
 }

 public void setDataLength(int dataLength) {
  this.dataLength = dataLength;
 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: