java工具类

来源:互联网 发布:联通网络解锁助手1.0.9 编辑:程序博客网 时间:2024/06/05 19:37

Collections工具类

  • Collections类是集合的工具类,可以对集合中的数据进行排序。
  • Collections.sort(List list);实现元素排序(基本类型)
  • Collections.reverse(List list);反转集合中元素的顺序。

比较器

集合中存储的是引用类型的数据,需要比较大小,则需要比较器

1.Comparable接口

  • 集合中存储的类型实现java.lang.Comparable接口。(implements Comparable)依然可以使用Collections工具类进行排序。
  • 被排序的是引用类型,自动调用该接口中的比较方法public int compareTo(Object o);实现排序。基本类型不调用。
  • compareTo()是比较器的方法,返回值有三种:大于0(调用方法的对象比方法参数对象大)、等于0(调用方法的对象与方法参数对象相等)、小于0(调用方法的对象比方法参数小)
  • Comparable实现的是默认比较器

2.Comparator接口

  • 集合中存储的类型实现java.lang.Comparator接口。(implements Comparator)依然可以使用Collections工具类进行排序。实现该接口后,默认的Comparable比较器就不起作用
  • 被排序的是引用类型,自动调用该接口中的比较方法public int compare(Object o1,Object o2);实现排序。基本类型不调用。
  • compare()是比较器的方法,返回值有三种:大于0(o1 > o2)、等于0(o1 = o2)、小于0(o1 < o2)
  • 用Collections.sort(集合对象,比较器对象);

总结

1、Arrays与Array区别

  • 数组Array
    java中最基本的一个存储结构,提供了动态创建和访问java数组的方法。其中元素的类型必须相同,效率高,但是容量固定且无法动态改变,无法判断其中实际存多少个元素,length只是告诉我们Array的容量。
  • 静态类Arrays
    此静态类专门用来操作Array,提供搜索、排序、复制等静态方法
    equals():比较两个array是否相等,array拥有相同元素个数,且所有对应元素两两相等。
    sort():用来对array进行排序
    Array.asList(array):将数组array转化为List.

2、Collections与Collection区别

  • Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法
  • Collections是一个包装类,它包含有各种各样有关集合操作的静态多态方法,此类不能实例化,即不能new.是一个工具类。服务于java的Collection框架

3、Comparable与Comparator区别

  • Comparable可以认为是一个内比较器,依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。如果开发者add进入一个Collection的对象想要Collections的sort方法帮你自动进行排序的话,那么这个对象必须实现Comparable接口。compareTo方法的返回值是int。
  • Comparator可以认为是一个外比较器,一个对象实现了Comparable接口,但是开发者认为compareTo方法中的比较不是自己想要的那种比较方式。此时实现Comparator接口。Comparator接口中有一个compare()方法,方法参数有两个o1,o2,分别表示待比较的两个对象,返回值为:int。