list集合的排序:(int , String)
Collections.sort(list, new Comparator<Student>(){
public int compare(Student s1,Student s2){
//按String字母升序
int i=s1.getName().compareTo(s2.getName());
if(i==0){
//按照数字升序
return s2.getScore()-s1.getScore();
}
return i;
}
});
List自定义标准排序
public static void main(String[] args) {
//自定义顺序
Integer[] defined = {1,8,2,6};
final List<Integer> definedOrder = Arrays.asList(defined);
Integer[] toBeOrdered = {1,2,2,6,8,1,2,6,8,2,1,1,1,6,6,6,8};
List<Integer> toBeOrderedList = Arrays.asList(toBeOrdered);
Collections.sort(toBeOrderedList, new Comparator<Integer>()
{
public int compare(Integer o1, Integer o2)
{
return definedOrder.indexOf(o1) - definedOrder.indexOf(o2);
}
});
System.out.println("自定义顺序:");
for(Integer stu : definedOrder){
System.out.print(stu.toString()+",");
}
System.out.println(" 按标准顺序排列:");
for(Integer stu : toBeOrderedList){
System.out.print(stu.toString()+",");
}
}
map集合排序
public static void main(String[] args) {
//集合的定义
Map<Integer,Object> map = new HashMap<Integer,Object>();
map.put(111, "Q");
map.put(2, "S");
map.put(3, "f");
map.put(4, "W");
map.put(15, "fa");
map.put(1, "DD");
//将HashMap集合封装到TreeMap集合,实现升序排序
Map<Integer,Object> treemap = new TreeMap<Integer,Object>();
//将HashMap集合封装到TreeMap集合,实现逆序排序
Map<Integer,Object> treemap = new TreeMap<Integer,Object>(Collections.reverseOrder());
treemap .putall(map);
Set set = treemap.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
Integer a = (Integer)it.next();
System.out.println("key:"+a+" value:"+treemap.get(a));
}
}
控制台输出:
key:1 value:DD
key:2 value:S
key:3 value:f
key:4 value:W
key:15 value:fa
key:111 value:Q
String 和 Integer 都会自动升序
set集合排序
public static void main(String[] args) {
//集合的定义
Set<Integer> hashSet = new HashSet<Integer>();
hashSet.add(11);
hashSet.add(2);
hashSet.add(3);
hashSet.add(4);
hashSet.add(235);
hashSet.add(1);
Set<Integer> treeSet = new TreeSet<Integer>(hashSet);
for(Integer i:treeSet){
System.out.println(i);
}
}
控制台输出:
1 2 3 4 11 235
public static void main(String[] args) {
Student student = new Student();
//集合的定义
List<Student> list = new ArrayList<Student>();
Set<String> hashSet = new HashSet<String>();
hashSet.add("A");
hashSet.add("W");
hashSet.add("E");
hashSet.add("T");
hashSet.add("F");
hashSet.add("U");
Set<String> treeSet = new TreeSet<String>();
treeSet .addAll(hashSet);
for(String i:treeSet){
System.out.println(i);
}
}
控制台输出:
A E F T U W