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】
Arrays.sort(Object[] a) //根据元素的自然顺序对指定对象数组按升序进行排序 Collections.sort(List<T> list) //根据元素的自然顺序 对指定列表按升序进行排序。最终执行比较的是String类重写Comparable<String>接口中的 compareTo()方法。
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); } }
直接比较ascii值就可以了.数字的ascii值比字母的小 然后升序排列就好了
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); }
比较类型
比较值
})
{
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);
}
}
{
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】
//根据元素的自然顺序对指定对象数组按升序进行排序
Collections.sort(List<T> list)
//根据元素的自然顺序 对指定列表按升序进行排序。最终执行比较的是String类重写Comparable<String>接口中的 compareTo()方法。
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);
}
}
然后升序排列就好了
/**
* @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);
}
但建议使用Collections.sort()方法,这个应该是改良后后快速排序,效率会高些。希望能给LZ有所帮助!
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);
}
}
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 判断类型。
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;
}