先按数字再按照字母: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * 主要用于根据list中的类某个字段排序1-9,a-z * @author Administrator * */ public class Sort { public void sort(List<test> list) { MCompare compare = new MCompare(); Collections.sort(list, compare); for(test t : list){ System.out.println(t.getName()); } } //测试 public static void main(String[] args){ List list = new ArrayList(); test t1 = new test(); test t2 = new test(); t1.setId(1); t1.setName("K3a"); t2.setId(2); t2.setName("k2z"); list.add(t1); list.add(t2); new Sort().sort(list); } } class MCompare implements Comparator<test> { public int compare(test one, test two) { return one.name.compareToIgnoreCase(two.name); } } 结果如下: k2zK3a