• 黑马程序员JAVA基础Java 集合之Collections 工具类


      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)
        根据指定比较器产生的顺序对指定列表进行排序。

      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)
        反转指定列表中元素的顺序。 

     1 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 }

    三.线程同步的集合

      Collections 类有一类方法:synchronizedXXX(XXX xxx) 返回支持同步的集合。如:static <T> List<T> synchronizedList(List<T> list) 返回指定列表支持的同步(线程安全的)列表。

  • 相关阅读:
    SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSAS 系列
    微软BI 之SSRS 系列
    微软BI 之SSRS 系列
    配置 SQL Server Email 发送以及 Job 的 Notification通知功能
  • 原文地址:https://www.cnblogs.com/jbelial/p/3012888.html
Copyright © 2020-2023  润新知