⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swimdata.java

📁 JAVA设计模式english
💻 JAVA
字号:
import java.util.*;
import java.io.*;

public class SwimData
   implements Cloneable , Serializable
{
  protected Vector swimmers;
  public SwimData(String filename)
  {
     String s = "";
     swimmers = new Vector();
     InputFile f = new InputFile(filename);
     s= f.readLine();
     while(s != null)
     {
        swimmers.addElement(new Swimmer(s));
        s= f.readLine();
     }
     f.close();
  }
  //-------------------------------------------
  public int size()
  {
     return swimmers.size();
  }
 //-------------------------------------------
  public Swimmer getSwimmer(int i)
  {
     if ( (i >= 0) && (i<swimmers.size()) )
        return (Swimmer)swimmers.elementAt(i);
     else
        return  null;
  }
  //-------------------------------------------
  public void sortByTime()
  {
     Swimmer sw;
     int i, j;
     int max = swimmers.size();
     Swimmer sd[] = new Swimmer[max];
     for( i =0; i< max; i++)
        sd[i] = (Swimmer)swimmers.elementAt(i);
     for (i =0; i< max; i++) 
        {
        for(j = i; j <max; j++)
         {
           if (sd[i].getTime() > sd[j].getTime()) 
              {
              sw= sd[i];
              sd[i] = sd[j];
              sd[j]= sw;
              }
         }
        }    
  // swimmers = new Vector();
     swimmers.removeAllElements();
   for(i = 0; i < max; i++)
      swimmers.addElement(sd[i]);
  }
  //-------------------------------------------
  public Object deepClone()
  {
    try{
     ByteArrayOutputStream b = new ByteArrayOutputStream();
     
     ObjectOutputStream out = new ObjectOutputStream(b);
     
     out.writeObject(this);
     ByteArrayInputStream bIn = new ByteArrayInputStream(b.toByteArray());
     
     ObjectInputStream oi = new ObjectInputStream(bIn);
     
     return (oi.readObject());
    }
    catch (Exception e)
    {  System.out.println("exception:"+e.getMessage());
    e.printStackTrace();
    return null;
    }
    
  }
  //-------------------------------------------
  public Object clone()
  {
     try{
      return super.clone();
     }
     catch(Exception e)
     {System.out.println(e.getMessage());
     return null;
     }
  }
}
//==============================================
class Swimmer implements Serializable
{  String name;
   int age;
   String club;
   float time;
   boolean female;

   public Swimmer(String dataline)
   {
   StringTokenizer st = new StringTokenizer(dataline, ",");
   name = st.nextToken();
   age = new Integer(st.nextToken().trim()).intValue();
   club = st.nextToken().trim();
   time = new Float(st.nextToken().trim()).floatValue();
   //System.out.println(name+" "+time);
   String sx = st.nextToken().trim().toUpperCase();
   female = sx.equals("F");
   }
   public boolean isFemale()
   {
      return female;
   }
   public int getAge()
   {
      return age;
   }
   public float getTime()
   {
      return time;
   }
   public String getName()
   {
      return name;
   }
   public String getClub()
   {
      return club;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -