如:
部品A    10
部品B    9
部品C    8
部品D    11
部品E    8
如何得到这样的结果:
部品C    8
部品E    8
部品B    9
部品A    10
部品D    11
前面部份是不重复的,后面数值部份可能重复,数值越小的排在前面,数值相同的哪个先都可以

解决方案 »

  1.   

    Arrays.sort()
    现成的排序
    你需要做的就是写一个Comparator来比较大小
    先看看Arrays.sort方法吧,很简单的
      

  2.   

    在类里实现Comparable接口里的compareTo(E o)方法
      

  3.   

    import java.util.Collection; import java.util.Iterator; import java.util.SortedMap; import java.util.TreeMap; 
     /**  * @author www.inspiresky.com  *  */ public class TestSort { 
     /**  * @param args  */ public static void main(String[] args) {     // TODO Auto-generated method stub          TreeMap map = new TreeMap();                 for(int i=0; i<10; i++) {         String  s = ""+(int)(Math.random()*1000);         map.put(s,s);     }          map.put("abcd","abcd");     map.put("Abc", "Abc");     map.put("bbb","bbb");     map.put("BBBB", "BBBB");          map.put("北京","北京");     map.put("中国","中国");     map.put("上海", "上海");     map.put("厦门", "厦门");     map.put("香港", "香港");     map.put("碑海", "碑海");          Collection col = map.values();     Iterator it = col.iterator();     while(it.hasNext()) {         System.out.println(it.next());     } } }
      

  4.   

    TO hdhmail2000(禅剑飞雪) 
    这个例子是按KEY进行排序的,我这个问题如果不能把数值作为KEY。因为有重复的
      

  5.   

    TO hdhmail2000(禅剑飞雪) 
    这个例子是按KEY进行排序的,我这个问题不能把数值作为KEY。因为有重复的
      

  6.   

    class Node
          implements Comparator {
        public String s1;
        public String s2;
        public int compare(Object object, Object object1) {
          Node n1=(Node)object;
          Node n2=(Node)object1;
          return n1.s2.compareTo(n2.s2);
        }    public boolean equals(Object object) {
          return false;
        }
      }
    //排序
    ArrayList list=new ArrayList();
    //list里面添加Node节点
    Object[] v= list.toArray();
    Arrays.sort(v);
    然后看看v的顺序如何
      

  7.   

    //排序
    Collections.sort(epiList, new epiComparator(field, flag));
    private class epiComparator implements Comparator
    {
    private String field;
    private String flag; public epiComparator(String field, String flag)
    {
    this.field = field;
    this.flag = flag;
    }
    /* 
     * 方法名称:compare
     * 内容摘要:实现比较方法的地方 返回 1 则 a.b交换 -1 a,b不变 0 不变
     * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
     */
    public int compare(Object o1, Object o2)
    {
    EpibolyObject epi1 = new EpibolyObject();
    EpibolyObject epi2 = new EpibolyObject(); epi1 = (EpibolyObject) o1;
    epi2 = (EpibolyObject) o2;     //比较字段的大小
    int big = 0;
        //根据升降确定返回值
    int order = 0; if ("epiComName".equals(field))
    {
    // > return 1 < return -1 == return 0
    big = epi1.getEpiComName().compareTo(epi2.getEpiComName());
    }
    else if ("epiNo".equals(field))
    {
    big = epi1.getEpiNo().compareTo(epi2.getEpiNo());
    }
    else if ("epiName".equals(field))
    {
    big = epi1.getEpiName().compareTo(epi2.getEpiName());
    }

    if ("asc".equals(flag))
    {
    order = big;
    }
    else if ("desc".equals(flag))
    {
    order = -big;
    }

    return order;
    }}