1.list排序
正序:Collections.sort(list);
倒序:Collections.sort(list);
Collections.reverse(list);
注意Collections.reverse(list);是表示将该列表反过来
看代码:
public static void main(String[] args) {
int[] iArray = new int[50];//新建一个长度为50的数组
Random random = new Random();
List<Integer> al = new ArrayList<Integer>();//新建list
for (int i = 0; i < 50; i++) {//遍历数组,并插入值
iArray[i] = random.nextInt(300);//插入0-300的随机数
int num = iArray[i];
System.out.print(num + " ");
if (num % 2 == 0) {//取偶数
al.add(num);//插入list中
}
}
System.out.println();
Collections.sort(al);//正序排序
Collections.reverse(al);//将list反过来
for (int i : al) {//遍历
System.out.print(i + " ");
}
}
2.treeset(set)排序
本身treeset就就是一个正序集合,创建语法:
TreeSet treeSet = new TreeSet();
倒序排序:
TreeSet treeSet = new TreeSet(Collections.reverseOrder());
看代码:
public static void main(String[] args) {
int[] iArray = new int[50];//新建一个长度为50的数组
Random random = new Random();
TreeSet<Integer> treeSet = new TreeSet<Integer>(Collections.reverseOrder());//新建倒序treeset
//TreeSet<Integer> treeSet = new TreeSet<Integer>(Collections.reverseOrder());//新建顺序treeset
for (int i = 0; i < 50; i++) {//遍历数组,并插入值
iArray[i] = random.nextInt(300);//插入0-300的随机数
int num = iArray[i];
System.out.print(num + " ");
if (num % 2 == 0) {//取偶数
treeSet.add(num);//插入treeset中
}
}
System.out.println();
System.out.println("倒序输出偶数");
for (Integer integer : treeSet) {//遍历
System.out.print(integer+" ");
}
}
3.map排序
Key排序:
正序:用treeMap排序,默认是根据key排序,升序排序
倒序:用Comparator比较器进行排序
上代码:
public static void main(String[] args) {
int[] iArray = new int[50];//新建一个长度为50的数组
Random random = new Random();
Map<Integer,Integer> map = new TreeMap<Integer,Integer>(
new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
for (int i = 0; i < 50; i++) {//遍历数组,并插入值
iArray[i] = random.nextInt(300);//插入0-300的随机数
int num = iArray[i];
System.out.print(num + " ");
if (num % 2 == 0) {//取偶数
map.put(i, num);//插入map中
}
}
System.out.println();
System.out.println("treeMap的倒序遍历,key倒序遍历");
for (Integer key : map.keySet()) {
System.out.print(key + ":" + map.get(key)+" ");
}
}
value排序:遍历,储存于list中,利用Collections.sort与比较器来实现排序,正倒序,只需要将比较器中的值换位置即可
上代码:
public static void main(String[] args) {
int[] iArray = new int[50];// 新建一个长度为50的数组
Random random = new Random();
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
for (int i = 0; i < 50; i++) {// 遍历数组,并插入值
iArray[i] = random.nextInt(300);// 插入0-300的随机数
int num = iArray[i];
System.out.print(num + " ");
if (num % 2 == 0) {// 取偶数
map.put(i, num);// 插入map中
}
}
System.out.println();
// treemap按照value 排序
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
// 降序排序
public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
System.out.println("value降序遍历");
for (Entry<Integer, Integer> e : list) {
System.out.print(e.getKey() + ":" + e.getValue()+" ");
}
}