黑马程序员 java基础之集合工具类


Collections 类中的方法是用来操作 Collection 集合的,而且Collections 中的方法全部是静态方法。

 如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException

方法有:

 static <T extends Comparable<? super T>> void sort(List<T> list)

    根据元素的自然顺序 对指定列表按升序进行排序。

  static <T> void sort(List<T> list, Comparator<? super T> c) 

public class CollectionsDemo {
2 public static void main(String[] args)
3 {
4 List<String> name = new ArrayList<String>() ;
5
6 name.add("sdffqew") ;
7 name.add("wfw") ;
8 name.add("wefuoh") ;
9 name.add("fuheh") ;
10 name.add("hfuiowe") ;
11 Show(name) ;
12 System.out.println("");
13 // 根据元素的自然顺序排序。
14 Collections.sort(name) ;
15 Show(name) ;
16 // 根据指定的比较器进行排序:
17 System.out.println("");
18 Collections.sort(name,new LengthComparator()) ;
19 Show(name) ;
20 // 返回集合中最大的元素:
21 System.out.println("Collections.max(name) = "
22 + Collections.max(name)) ;
23 // 返回集合中最长的元素:
24 System.out.println("Colloections.max(name,new LengthComparator()) = "
25 + Collections.max(name , new LengthComparator()));
26 // 反转列表:
27 Collections.reverse(name) ;
28 System.out.println("");
29 Show(name) ;
30 // 替换所有元素。
31 Collections.fill(name, "heima") ;
32 Show(name) ;
33 }
34 public static void Show(List<String> name)
35 {
36 Iterator it = name.iterator() ;
37 while(it.hasNext())
38 {
39 System.out.println(it.next());
40 }
41 }
42 }
43 //定义一个比较器:按长度进行排序
44 class LengthComparator implements Comparator<String>
45 {
46 public int compare(String a , String b)
47 {
48 return a.length() - b.length() ;
49 }
二.reverseOrder 方法
static <T> Comparator<T> reverseOrder()
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
返回一个比较器,它强行逆转指定比较器的顺序。
1 public class CollectionsDemo2 {
2 public static void main(String[] args)
3 {
4 // TreeSet 集合 是按照 自然顺序排序的。
5 Set<String> name = new TreeSet<String>() ;
6 name.add("adsfad") ;
7 name.add("adfefcf") ;
8 name.add("dfgr") ;
9 name.add("ggdf") ;
10 System.out.println(name);
11 ReverseOrderDemo() ;
12 System.out.println("-------------------------");
13 Set<String> test = new TreeSet<String>(new LengthComparator()) ;
14 test.add("adsfad") ;
15 test.add("adfefcf") ;
16 test.add("dfgr") ;
17 test.add("ggdf") ;
18 System.out.println(test);
19 ReverseOrderDemo1() ;
20 }
21 public static void ReverseOrderDemo()
22 {
23 // 调用reverseOrder()方法;
24 Set<String> name = new TreeSet<String>(Collections.reverseOrder()) ;
25 name.add("adsfad") ;
26 name.add("adfefcf") ;
27 name.add("dfgr") ;
28 name.add("ggdf") ;
29 System.out.println(name);
30 }
31 public static void ReverseOrderDemo1()
32 {
33 Set<String> test = new TreeSet<String>(Collections.reverseOrder(new LengthComparator())) ;
34 test.add("adsfad") ;
35 test.add("adfefcf") ;
36 test.add("dfgr") ;
37 test.add("ggdf") ;
38 System.out.println(test);
39 }
40 }
41 //定义一个比较器:按长度进行排序
42 class LengthComparator implements Comparator<String>
43 {
44 public int compare(String a , String b)
45 {
46 int len = a.length() - b.length() ;
47 if(len != 0)
48 return len ;
49 return a.compareTo(b) ;
50 }
51 }

  


根据指定比较器产生的顺序对指定列表进行排序。

  static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) 
根据元素的自然顺序,返回给定 collection 的最大元素。 
static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) 
根据指定比较器产生的顺序,返回给定 collection 的最大元素。  
static <T> void fill(List<? super T> list, T obj) 
使用指定元素替换指定列表中的所有元素。  
static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) 
使用另一个值替换列表中出现的所有某一指定值。 
static void reverse(List<?> list) 
反转指定列表中元素的顺序。 

posted @ 2013-05-14 21:14  xiewen3410  阅读(146)  评论(0编辑  收藏  举报