Java 数字sort reverse

http://hi.baidu.com/yljf184/item/5d7f8c2c36b9960b42634aca

int[] intArray = {4, 1, 3, -23};
Arrays.sort(intArray);
// [-23, 1, 3, 4]

//4 1 3 -23
String[] strArray = new String[] {"z", "a", "C"};
Arrays.sort(strArray);
// [C, a, z]

// Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
// [a, C, z]

// Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
// [z, a, C] // 从大到小

// Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
// [z, C, a] // 对前面的排序进行逆转

 

  //红色的reverse放在不同的位子,他们的意义是不同的

 

如果已经理解了Arrays.sort()对数组进行排序的话,集合框架的使用也是大同小异。只是将Arrays替换成了Collections,注意Collections是一个类而Collection是一个接口.

假如有这样一个链表:
LinkedList list=new LinkedList();
list.add(4);
list.add(34);
list.add(22);
list.add(2);
我们只需要使用:
Collections.sort(list);
就可以将ll里的元素按从小到大的顺序进行排序,结果就成了:
[2, 4, 22, 34]
如果LinkedList里面的元素是String,同样会想基本数据类型一样从小到大排序。
如果要实现反序排序也就是从大到小排序:
Collections.sort(list,Collectons.reverseOrder());

 

http://bo-hai.iteye.com/blog/1261566

错误:

import java.util.Arrays;
import java.util.List;


public class TestAsList {

public static void main(String[] args) {
String[] str = new String[]{"1","2","3"};
List<String> list = Arrays.asList(str);
list.add("4");
}
}


  

分析原因:

list 的值是数据传化而来,因此list的长度是固定的。程序运行到 list.add("4")时,程序出错了。

解决办法如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class TestAsList {

public static void main(String[] args) {
String[] str = new String[]{"1","2","3"};
List<String> list = new ArrayList<String>(Arrays.asList(str));
list.add("4");
System.out.println(list.size());
}
}

posted on 2013-04-11 16:18  Sure_Yi  阅读(621)  评论(0编辑  收藏  举报

导航