java integer集合排序_Java集合排序
Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.util.List, java.util.Comparator)第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。第二个方法要求实现一个java.util.Comparat
Java API针对集合类型排序提供了两种支持:
java.util.Collections.sort(java.util.List)
java.util.Collections.sort(java.util.List, java.util.Comparator)
第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。
第二个方法要求实现一个java.util.Comparator接口。
java.lang.Comparable接口和java.util.Comparator接口是Java对排序最提供最基本支持。这两个接口不但可以用于集合元素排序,还可以用于数组排序。
如果数组或集合元素是String类型,则可以利用Java API实现的Comparator对象String.CASE_INSENSITIVE_ORDER为容器元素排序。
package com.what21.collect03;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListSortTest {
/**
* @param args
*/
public static void main(String[] args) {
List dataList = new ArrayList();
for(int i=0;i<30;i++){
// 添加
dataList.add(new Object());
}
Collections.sort(dataList, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
if(o1.hashCode() > o2.hashCode()){
return 1;
}else{
return -1;
}
}
});
// 遍历
for(Object obj : dataList){
System.out.println(obj);
}
}
}
package com.what21.collect03;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetSort {
/**
* @param args
*/
public static void main(String[] args) {
TreeSet set = new TreeSet(new Comparator() {
public int compare(Integer a, Integer b) {
return a > b ? a : b;
}
});
// ====初始化====
for (int i = 0; i < 20; i++) {
set.add((i + 1) * 10);
}
// ====集合输出====
System.out.println(set);
// ====遍历输出====
Iterator setIt = set.iterator();
while (setIt.hasNext()) {
System.out.println(setIt.next());
}
}
}
package com.what21.collect03;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HashMapSort {
/**
* @param args
*/
public static void main(String[] args) {
Map map = new HashMap();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);
List> infoIds = new ArrayList>(
map.entrySet());
// ====排序前输出====
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.print(id + " , ");
}
System.out.println();
System.out.println("===================");
// ====排序操作====
Collections.sort(infoIds, new Comparator>() {
public int compare(Map.Entry map1,
Map.Entry map2) {
return (map1.getKey()).toString().compareTo(map2.getKey());
}
});
// ====排序后输出====
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.print(id + " , ");
}
System.out.println();
}
}
更多推荐
所有评论(0)