假如list 里面有12,a,13,b,14,c这六个元素,如果排序后输出12,13,14,a,b,c

解决方案 »

  1.   

    可以先把字母筛选出来,让后ascii转码,然后再根据你的需要去排序
      

  2.   

    sort()方法可以一试  Java中的Sort()方法你可以查查帮助文档C# 中的sort()方法可以
      

  3.   

    Collections.sort(list,new Comparator(){
       比较类型
       比较值
    })
      

  4.   

    下面代码已经运行通过:import java.util.*;class CollectionsTest
    {
    public static void main(String[] args)
    {
    List list = new ArrayList();
    list.add("13");
    list.add("a");
    list.add("14");
    list.add("c");
    list.add("12");
    list.add("b");
    Collections.sort(list);
    System.out.println(list);
    }
    }
      

  5.   

    实现Comparable接口,如果是数字比较,那就按自然顺序,如果是数字和字母,就数字在前,字母在后
      

  6.   

    Java中的Sort()方法可以实现:import java.util.*;class Test
    {
    public static void main(String[] args)
    {
    List list = new ArrayList();
    list.add("13");
    list.add("a");
    list.add("14");
    list.add("c");
    list.add("12");
    list.add("b");
    Collections.sort(list);
    System.out.println(list);
    }
    }运行结果:【12,13,14,a,b,c】
      

  7.   

    Arrays.sort(Object[] a)
    //根据元素的自然顺序对指定对象数组按升序进行排序
    Collections.sort(List<T> list) 
    //根据元素的自然顺序 对指定列表按升序进行排序。最终执行比较的是String类重写Comparable<String>接口中的 compareTo()方法。
      

  8.   

    import java.util.*;class test {
    public static void main(String[] args) {
    List<String> list = new ArrayList<String>();//这里要使用泛型,要养成良好的编程习惯
    list.add("b");
    list.add("a");
    list.add("14");
    list.add("c");
    list.add("12");
    list.add("13");
    Collections.sort(list);//这个排序方法是从小大到,由于数字都是小于字母的(a是97,a>任何单个数字),所以数字在前
    System.out.println(list);
    }
    }
      

  9.   

    直接比较ascii值就可以了.数字的ascii值比字母的小
    然后升序排列就好了
      

  10.   

    String类已经实现了比较接口啊。可以直接用Collections的比较方法
    /**
     * @param args
     */
    public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("13");
    list.add("a");
    list.add("14");
    list.add("c");
    list.add("12");
    list.add("b");
    sort(list);
    System.out.println(list);
    }

    public static void sort(List<String> list){
    Collections.sort(list);
    }
      

  11.   

    自己手工用冒泡、选择排序是可以的。
    但建议使用Collections.sort()方法,这个应该是改良后后快速排序,效率会高些。希望能给LZ有所帮助!
      

  12.   

    用ascII码或者 这楼说的
      

  13.   

    判断ASCII码,分辨出数字和字母以后再处理、比较吧
      

  14.   

    如果简单一点的解决方案:用Conllections去操作list集合。在操作list集合前用instanof去判断下类型。令一种麻烦一点的解决方案就是从list集合中循环输出数据放到数组中,在从数组取出数据排序。
      

  15.   

    先让list中的对象实现comparable接口然后重写这个接口的方法最后使用sort方法就行了
      

  16.   

    !!!按照你提供的元素,使用java 默认的排序功能就可以了。Collections.sort
      

  17.   

    sort()方法这么牛啊。记下了。
      

  18.   

    package *;
    import java.util.*;class CollectionsTest
    {
    public static void main(String[] args)
    {
    List list = new ArrayList();
    list.add("13");
    list.add("a");
    list.add("14");
    list.add("c");
    list.add("12");
    list.add("b");
    Collections.sort(list);
    System.out.println(list);
    }
    }
      

  19.   

     
    package mm.nn;
    import java.util.Comparator;public class MyComparator implements Comparator {
    @Override
    public int compare(Object o1, Object o2) {
    Class<?> classType1 = o1.getClass();
    Class<?> classType2 = o2.getClass();
    if(classType1 == Integer.class &&classType2 == Character.class) {
    System.out.println("比较数字和字符");
    return -1;
    }
    else if(classType2 == Integer.class && classType1 == Character.class) {
    System.out.println("比较字符和数字");
    return 1; 
    }
    else if(classType2 == Integer.class && classType1 == Integer.class) {
    Integer i1 = (Integer)o1;
    Integer i2 = (Integer)o2;
    System.out.println("比较两个整数");
    return i1.compareTo(i2);
    }
    else if(classType2 == Character.class && classType1 == Character.class) {
    Character c1 = (Character)o1;
    Character c2 = (Character)o2;
    System.out.println("比较两个字符");
    return c1.compareTo(c2);
    }
    else {
    return 0;
    }
    }
    }
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    @SuppressWarnings("unchecked")
    public class Test {
    public static void main(String[] args) {
    List list = new ArrayList();
    list.add(12);
    list.add('a');
    list.add(13);
    list.add('b');
    list.add(14);
    list.add('c');

    Collections.sort(list, new MyComparator());
    for(Object o : list) {
    System.out.println(o);
    }
    }
    }
    利用Collections 里面提供的静态方法sort,
    实现Comparator接口的compare方法,然后传入到sort作为参数即可
    我的这种判断类型的方式也是乱写的,刚学反射,一知半解,希望高手指正。
    当然也可以用xx instanceof C 判断类型。 
      

  20.   

    public int compare(Object[] o1, Object[] o2) {  
                 try
                    {
                     // 取得比较对象的汉字编码,并将其转换成字符串                  String s1 = new String(((Employee)o1[0]).getSsno().getBytes(
                      "GB2312"), "ISO-8859-1");
                     String s2 = new String(((Employee)o2[0]).getSsno().getBytes(
                      "GB2312"), "ISO-8859-1");
                     // 运用String类的 compareToIgnoreCase()方法对两对象进行比较,忽略大小写                  return s1.compareToIgnoreCase(s2);
                    }
                    catch (Exception e)
                    {
                     e.printStackTrace();
                    }
                    return 0;
                }