zoukankan      html  css  js  c++  java
  • 黑马程序员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) 返回指定列表支持的同步(线程安全的)列表。

  • 相关阅读:
    Qt自定义控件
    Qt布局的简单介绍
    Qt-ui的简单使用,常用控件(2)
    Qt--ui的简单使用(1)
    走向微信api开发
    一文一项目, 代码分析篇
    关于重写一些曾经写的东西
    最近发现一个数据库,好像可以用,于是做了一个调查,把一般常用的和可能踩的坑都查了一下方法,记录了一下,以后可以使用.
    号外一下
    抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】
  • 原文地址:https://www.cnblogs.com/jbelial/p/3012888.html
Copyright © 2011-2022 走看看