比如以文件名开头字母排序从a到z,如何自已写这个方法.或者API里有吗?

解决方案 »

  1.   

    String类已经实现了按字母顺序排序的方法
    看下String类的API
      

  2.   

    实现comparable接口或comparator接口,重写compareTO 或compare方法
      

  3.   

    看我这篇blog的最后一个代码: Java中的排序(一)
      

  4.   

    存放在TreeSet,字符串就是按照unicode升序存放的,符合你的要求,如果要自己实现那就写自己的比较器
    import java.util.Iterator;
    import java.util.TreeSet;public class FileDesc {
        public static void main(String[] args) {
            TreeSet treeset = new TreeSet();
            treeset.add("a");
            treeset.add("b");
            treeset.add("ef");
            treeset.add("ab");
            treeset.add("ce");
            treeset.add("z");
            String str;
            for(Iterator it = treeset.iterator();it.hasNext();){
                 str =(String)it.next();
                 System.out.println(str);
            }        
        }
    }自己写的话,就得TreeSet treeset = new TreeSet(new new Comparator(){
    public int compare(Object v1,Object v2){//实现这个方法就是了,查jdk
    }
    });
      

  5.   

    String 类已经实现了Comparator接口 所以可以直接实现排序
    如果是自定义类 那么可以让他实现这个接口,传递自定义的比较器……
      

  6.   

    String[] strs ={"AR1","TR1A","TR1B"};
    Arrays.sort(strs);
    for(int i=0;i<strs.length;i++){
    System.out.println(strs[i]);
    }运行结果:
    AR1
    TR1A
    TR1B
      

  7.   

    import java.util.*;
    public class MyComparator1 implements Comparator
    {
    public int compare(Object o1,Object o2)
    {
    FileDesc f1=(FileDesc)o1;
    FileDesc f2=(FileDesc)o2;


    if(f1.getFilesize()>f2.getFilesize())
    {
    return -1;
    }
    else if(f1.getFilesize()==f2.getFilesize())
    {

    }
    else
    {
    return 1;
    }

    }
    }else if里面如何写以getFilename()排序?
      

  8.   

    你的题目是以开头字母排序TreeSet treeset = new TreeSet(new new Comparator(){
                public int compare(Object o1,Object o2){//实现这个方法就是了,查jdk
                     char c1 = ((File)o1).getName().charAt(0);//你要得到的是文件名开头字母排序
                     char c2 = ((File)o2).getName().charAt(0);
                     return c2<c1?1:(c2==c1?0:-1);
                }
            });
    上面的是自己写的实现,我直接写的没有运行过,你自己调试,其实public class FileDesc {
        public static void main(String[] args) {
            TreeSet treeset = new TreeSet();
            treeset.add("a");
            treeset.add("b");
            treeset.add("ef");
            treeset.add("ab");
            treeset.add("ce");
            treeset.add("z");
            String str;
            for(Iterator it = treeset.iterator();it.hasNext();){
                 str =(String)it.next();
                 System.out.println(str);
            }        
        }
    }就能实现,你非要自己写