Arrays类
Arrays类概述,常用功能
-
Arrays类指代数组操作工具类,专门用于操作数组元素的
-
Arrays类常用API
方法名 说明 public static String toString(类型[] a) 对数组进行排序 public static void sort(类型[] a) 对数组进行默认升序排序 public static <T> void sort(类型[] a, Comparator<? super T>c) 使用比较器对象自定义排序 public static int binarySearch(int[] a, int key) 二分搜索数组中的数据(数组必须先完成排序),存在返回索引,不存在返回-1 -
测试代码:
package com.java.arrays_test; import java.util.Arrays; public class ArraysDemo01 { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50, 11, 22, 33, 44, 55}; System.out.println(arr); // 返回地址 String rs = Arrays.toString(arr); System.out.println(rs); // 打印数组元素 Arrays.sort(arr); // 对数组进行排序(升序) System.out.println(Arrays.toString(arr)); // 返回数组中的内容 //二分搜索(前提是必须已经完成排序) int index = Arrays.binarySearch(arr, 33); System.out.println(index); // 插入不存在的值时,返回:-(应该插入的位置索引 + 1) int index1 = Arrays.binarySearch(arr, 99); System.out.println(index1); } }
Arrays类对于Comparator比较器的支持
自定义排序规则
-
设置Comparator接口对应的比较器对象,来定制比较规则
如果认为:
- 左边数据 大于 右边数据 返回正整数
- 左边数据 小于 右边数据 返回负整数
- 左边数据 等于 右边数据 返回0
-
测试代码:
package com.java.arrays_test; import java.util.Arrays; import java.util.Comparator; public class ArraysDemo02 { public static void main(String[] args) { // 1.Arrays的sort方法对于有值特性的数组是默认升序排序的 int[] ages = {1, 43, 432, 1, 4, 21, 52, 346, 123}; // 2.需求:降序排序 需要先new出比较器对象,只能支持引用类型 Integer[] age = {1, 43, 432, 1, 4, 21, 52, 346, 123}; /* 参数一:被排序的数组 参数二:匿名内部类对象,代表一个比较器对象 */ Arrays.sort(age, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; //降序排序 // return o1 - 02 默认排序 } }); System.out.println("-----------------"); Student[] stu = new Student[3]; stu[0] = new Student("张三", 175); stu[1] = new Student("李四", 185); stu[2] = new Student("王五", 195); System.out.println(Arrays.toString(stu)); Arrays.sort(stu, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { // 自己指定比较规则 //return (int) (o1.getHeight() - o2.getHeight()); // 以身高升序排序 //return (int)(o2.getHeight() - o1.getHeight()); // 以身高降序排序 return Double.compare(o2.getHeight(),o1.getHeight()); //降序 // 可以使用这种形式比较浮点型 } }); System.out.println(Arrays.toString(stu)); } }
网友评论