//: StrSortVector.java
// Automatically sorted Vector that 
// accepts and produces only Strings
package c08;
import java.util.*;public class StrSortVector {
  private SortVector v = new SortVector(
    // Anonymous inner class:
    new Compare() {
      public boolean 
      lessThan(Object l, Object r) {
        return 
          ((String)l).toLowerCase().compareTo(
          ((String)r).toLowerCase()) < 0;
      }
      public boolean 
      lessThanOrEqual(Object l, Object r) {
        return 
          ((String)l).toLowerCase().compareTo(
          ((String)r).toLowerCase()) <= 0;
      }
    }
  );
  private boolean sorted = false;
  public void addElement(String s) {
    v.addElement(s);
    sorted = false;
  }
  public String elementAt(int index) {
    if(!sorted) {
      v.sort();
      sorted = true;
    }
    return (String)v.elementAt(index);
  }
  public Enumeration elements() {
    if(!sorted) {
      v.sort();
      sorted = true;
    }
    return v.elements();
  }
  // Test it:
  public static void main(String[] args) {
    StrSortVector sv = new StrSortVector();
    sv.addElement("d");    //这里替换你的排序内容
    sv.addElement("A");
    sv.addElement("C");
    sv.addElement("D");
    sv.addElement("a");
    Enumeration e = sv.elements();
    while(e.hasMoreElements())
      System.out.println(e.nextElement());
  }
} ///:~

解决方案 »

  1.   

    to copyright(笨蛋白痴神经质) :
    不行。谁可以帮帮我啊
      

  2.   

    import java.util.*;public class StrSortVector {
      public static void main(String[] args) {
        String[] strDir = {
          "c:\\windows\\system",
          "c:\\windows",
          "c:\\windows\\help"};
        for (int i=0; i < strDir.length; i++)
        {
          String value1 = strDir[i];
          for (int j=i+1; j < strDir.length; j++)
          {
            String value2 = strDir[j];
            if (value1.compareTo(value2) > 0)
            {
              strDir[i] = value2;
              strDir[j] = value1;
              value1 = value2;
            }
          }
        }
        for (int i=0; i < strDir.length; i++)
        {
          System.out.println(strDir[i]);
        }
      }
    } ///:
      

  3.   

    import java.util.*;public class Test{
      public static void main(String args[])
      throws Exception{
      
        String[] strDir = {
          "c:\\windows\\system",
          "c:\\windows",
          "c:\\windows\\help",
          "c:\\temp",
          "c:\\mydir\\java",
          "c:\\temp\\setup\\key"
        };
        
        new Test().compareDir(strDir);
      }
      
      /** 目录比较 */
      public void compareDir(String[] strDir){      
        java.util.Arrays.sort(strDir,new DirComparator());
          
        for(int i=0 ; i<strDir.length; i++){
          System.out.println(strDir[i]);
        }
      }   
    }class DirComparator implements Comparator{  
      /**
        比较
      */
      public int compare(Object o1, Object o2){
        String str1 = (String)o1;
        String str2 = (String)o2;
        int level1 = getDirLevelCount(str1);
        int level2 = getDirLevelCount(str2);
        
        if(level1!=level2)
          return level1-level2;
        else
          return str1.compareTo(str2);    
      } 
       
      /**
        获取目录层次
      */
      int getDirLevelCount(String dir){
        int count=0;
        int beginIndex = 0;
        int endIndex = 0;
        int strLength = dir.length();
        while(endIndex!=-1){
          endIndex = dir.indexOf("\\",beginIndex);
          if((endIndex!=strLength-1) && (endIndex!=-1)){
            count++;
          }
          
          beginIndex = endIndex+1;
        }
        
        return count;
      }
    }
      

  4.   

    如果不区分大小写 请自行修改 return str1.compareTo(str2);