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

摘要:
Collections类中的方法用于操作Collection集合,Collections中的方法都是静态方法。SuperT˃comp)根据指定比较器生成的顺序返回给定集合的最大元素。静态<T>布尔值replaceAll将列表中的所有指定值替换为另一个值。14集合排序;15显示;16//根据指定的比较器排序:17System.out.println;18集合排序;19显示;20//返回集合中最大的元素:21System.out.println;23//返回集合中最长的元素:24System.out.println;26//反向列表:27个集合。颠倒28系统输出打印;29展会;30//更换所有元件。31收款;32显示;33}34 publicstaticvoidShow35{36Iteratorit=name.iiterator();37while38{39System.out.println;40}41}42}43//定义比较器:按长度排序44classLengthComparatoricmElementsComprator<String>45{46publiccompare47{48return.length()-b length();49}II。reverseOrder方法static<T>Comparator<T>reverseOrder()返回一个比较器,它强制反转实现Comparable接口的对象集合的自然顺序。

  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) 返回指定列表支持的同步(线程安全的)列表。

免责声明:文章转载自《黑马程序员JAVA基础Java 集合之Collections 工具类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Maven适配多种运行环境的打包方案Qt的皮肤设计(Style Sheet)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

statement 、prepareStatement的用法和解释

转自:http://blog.csdn.net/QH_JAVA/article/details/48245945 一、prepareStatement 的用法和解释 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Stateme...

YAML简述

一、基础 YAML(Yet Another Markup Language),是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件。它规则如下: 1)大小写敏感 2)使用缩进表示层级关系,但不支持tab缩进,只支持空格 3)缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的空格即可 4)“#”表示注释,从这个字符开始,直到行末,都...

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)例如Query: select cast(round(2 / 3, 4)*100 as string)+---------------------------------------+| cast(round(2 / 3, 4) * 100 as string) |...

浅谈JEECG多数据源的使用

首先,简单的介绍下什么是JEECG。JEECG(J2EECode Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统。JEECG提倡简单功能由代码生成器直接生成,复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,由开发者编写特殊业务逻辑。 下面我们重点讲解下JEECG...

POI读取公式的值

excel中的数据: packagepoi; importjava.io.FileInputStream; importjava.io.IOException; importjava.io.InputStream; importorg.apache.poi.hssf.usermodel.HSSFWorkbook; importorg.apac...

Java ---Listener监听器

在我们的web容器中,一直不断的触发着各种事件,例如:web应用启动和关闭,request请求到达和结束等。但是这些事件通常对于开发者来说是透明的,我们可以根据这些接口开发符合我们自身需求的功能。在web中常见的的几个监听事件如下: ServletContextListener:用于监听web应用的启动和关闭 ServletContextAttribut...