Java 集合框架:工具类
Collections类
常用方法:
1.max(Collection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最大元素
2.min(Cssollection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最小元素
3.sort(List<T> list) :根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。
4.sort(List<T> list, Comparator<? super T> c) : 根据指定比较器产生的顺序对指定列表进行排序
5.reverse(List<?> list):反转指定列表中元素的顺序
6.swap(List<?> list, int i, int j):在指定列表的指定位置处交换元素,如果指定位置相同,则调用此方法不会更改列表。
7.binarySearch(List<? extends Comparable<? super T>> list, T key) :返list集合元素按照自然顺序升序排序后,使用二分搜索法搜索list集合,返回指定对象的索引,如果没找到返回-1。
8.max(Collection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最大元素
9.min(Collection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最小元素
Collections类方法演示
1.
注意:
在使用max和min方法时要求存入集合中的对象对应的类必须实现Comparable接口,否则程序在编译阶段就会报错。(详见备注示例2)
2.sort(List<T> list) :根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。
注意:
在使用sort(List<T> list) 方法时要求存入集合中的对象对应的类必须实现Comparable接口,否则程序在编译阶段就会报错。(详见备注示例2)
3.sort(List<T> list, Comparator<? super T> c) : 根据指定比较器产生的顺序对指定列表进行排序
注:实现集合中数据升序排列
注意:在使用sort(List<T> list, Comparator<? super T> c) 方法时存入集合中的对象对应的类无须实现Comparable接口。(详见备注示例2)
4.reverse(List<?> list):反转指定列表中元素的顺序
注意:
在使用reverse(List<?> list)方法时存入集合中的对象对应的类无须实现Comparable接口。(详见备注示例2)
5.reverse(List<?> list):反转指定列表中元素的顺序
注意:
在使用reverse(List<?> list)方法时存入集合中的对象对应的类无须实现Comparable接口。(详见备注示例2)
6.swap(List<?> list, int si, int j):在指定列表的指定位置处交换元素,如果指定位置相同,则调用此方法不会更改列表。
注意:
在使用swap(List<?> list, int i, int j)方法时存入集合中的对象对应的类无须实现Comparable接口。(详见备注示例2)
7.binarySearch(List<? extends Comparable<? super T>> list, T key) :返list集合元素按照自然顺序升序排序后,使用二分搜索法搜索list集合,返回指定对象的索引,如果没找到返回-1。
注意:
1.使用该方法前必须保证集合中的数据是升序排列的,否则结果不正确(详见备注示例2)
2.在使用该方法时存入集合中的对象对应的类必须实现Comparable接口,否则程序在编译阶段就会报错。 (详见备注示例3)
Comparable接口与Comparator接口
Comparable接口:
1.String和各种包装类已经实现了Comparable接口
2.TreeSet集合内默认是按照自然顺序排序的
3.在集合内元素之间的比较,由该类的compareTo(Object o)方法来完成,因为这种比较是在类内部实现,所以将Comparable称为内部比较器
Comparator:
1.外部比较器
2.配合Collections工具类的sort(List list, Comparator c)方法使用。
3.当集合中的对象不支持自比较或者自比较的功能不能满足需求时使用
4.和内部比较器相比,其可重用性好
Comparator接口:
注:没有实现Comparable
注:实现Comparator的compare方法
Arrays类
常用方法:
1.asList(T... a):将数组转换为List集合
2.static void sort(int[] a):对指定的 int 型数组按数字升序进行排序。
3.static <T> void sort(T[] a, Comparator<? super T> c):根据指定比较器产生的顺序对指定对象数组进行排序。
4.static boolean equals(Object[] a1, Object[] a2):判断构成两个数组的元素是否完全相同,相同返回true,否则返回false。
5.static int binarySearch(Object[] a, Object key) :二分搜索法来搜索指定数组,以获得指定对象。
6.static int binarySearch(Object[] a, int fromIndex, int toIndex, Object key) :二分搜索法来搜索指定数组的范围,以获得指定对象。
asList方法
asList(T... a):将数组转换为List集合
sort方法
static void sort(int[] a):对指定的 int 型数组按数字升序进行排序。
static <T> void sort(T[] a, Comparator<? super T> c):根据指定比较器产生的顺序对指定对象数组进行排序。
升序:
降序:
注:和升序的不同点:只是颠倒了一下顺序。
equals方法
static boolean equals(Object[] a1, Object[] a2):判断构成两个数组的元素是否完全相同,相同返回true,否则返回false。
代码执行完后,array1和array2两个数组变为有序的数组。