怎么给Vector里面的元素排序 有现成的方法吗?

解决方案 »

  1.   

    static void  sort(List list)
              Sorts the specified list into ascending order, according to the natural ordering of its elements.
    static void  sort(List list, Comparator c)
              Sorts the specified list according to the order induced by the specified comparator.
      

  2.   

    除了 Collections.sort(List list)这个方法还有别的吗 ? 再把vector 转成List 太麻烦了
    我自己写了冒泡 感觉不好    
    void sortVector(){
         int i,j;
         for(i=0;i<v.size()-1;i++){
         for(j=0;j<v.size()-i-1;j++){
         if(((String)v.get(j)).compareTo((String)v.get(j+1))<0){
         String strLine = (String)v.get(j);
         v.setElementAt((String)v.get(j+1),j);
         v.setElementAt(strLine,j+1);
         }
         }
         }
        }
      

  3.   

    vector 本身就是个List,用不着转换
      

  4.   

    好 谢谢flyforlove
    不过用Collections.sort  排序后是升序 那降序怎么用
      

  5.   

    List list = new Vector();
    list.add(...);
    ...
    Comparator comp = Collections.reverseOrder();
    Collections.sort(list, comp);
    System.out.println(list);
      

  6.   

    又学到新东西了..
    Collections.reverseOrder();
    原来是有的,以前还自己重新写了一个Comparator
      

  7.   

    自己写个比较器,建议lz不要使用冒泡法。冒泡法的时间复杂度太大。因为
    public class Vector extends AbstractList
            implements List, RandomAccess, Cloneable, java.io.Serializable具体代码参考一下
    //: c11:DirList.java
    // Displays directory listing.
    // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
    // www.BruceEckel.com. See copyright notice in CopyRight.txt.
    package org.luyang.collections;import java.util.Collections;
    import java.util.Comparator;
    import java.util.Vector;public class Sort {
        public static String sort1 = "BIG_TO_SMALL";    public static String sort2 = "SMALL_TO_BIG";    public static void main(String[] args) {        Vector vec = new Vector();
            vec.add("2");
            vec.add("3");
            vec.add("1");
            Collections.sort(vec, new AlphabeticComparator1(sort1));
            for (int i = 0; i < vec.size(); i++) {
                System.out.println(vec.get(i));
            }
        }
    }class AlphabeticComparator1 implements Comparator {
        String sort = null;    public AlphabeticComparator1(String sort) {
            this.sort = sort;
        }    public int compare(Object o1, Object o2) {
            String s1 = (String) o1;
            String s2 = (String) o2;
            if ("SMALL_TO_BIG".equalsIgnoreCase(sort)) {
                return s1.toLowerCase().compareTo(s2.toLowerCase());
            } else {
                return s1.toLowerCase().compareTo(s2.toLowerCase()) * -1;
            }
        }
    }