成都企业网站公司WordPress 默认链接 媒体文件
web/
2025/9/28 0:03:14/
文章来源:
成都企业网站公司,WordPress 默认链接 媒体文件,网站建设 知乎,在东莞建公司网站一、Arrays的概述
Arrays是操作数组的工具类 二、Arrays的常用方法
Arrays的常用方法基本上都被static静态修饰#xff0c;因此在使用这些方法时#xff0c;可以直接通过类名调用 1.toString
语法#xff1a;Arrays.toString(数组)
用于将数组的元素转换为一个字符串因此在使用这些方法时可以直接通过类名调用 1.toString
语法Arrays.toString(数组)
用于将数组的元素转换为一个字符串元素之间用逗号分隔所有元素用[]包括。
注意Arrays 类的 toString 方法来拼接或获取任何类型数组的字符串表示包括基本数据类型数组和对象数组。对于对象数组如果对象本身重写了 toString 方法那么这些方法的实现将被用于生成字符串表示。
该方法可以用来展示数组的元素因为如果直接输出数组名 则输出的是数组的地址
import java.util.Arrays;public class test1 {public static void main(String[] args) {// 1.Arrays.toString(数组) 将数组变成字符串int [] arr1new int[]{1,2,3};String s1Arrays.toString(arr1);System.out.println(s1);// [1, 2, 3]char [] arr2new char[]{a,b,c};String s2Arrays.toString(arr2);System.out.println(s2);// [a, b, c]String [] arr3new String[]{aaa,bbb,ccc};String s3Arrays.toString(arr3);System.out.println(s3);// [aaa, bbb, ccc]// Student类重写了toString方法 它的输出是Student{name name , age age }Student student1new Student(zhangsan,20);Student student2new Student(lisi,17);Student student3new Student(wangwu,18);Student [] arr4new Student[]{student1,student2,student3};String s4Arrays.toString(arr4);System.out.println(s4);// [Student{name zhangsan, age 20}, Student{name lisi, age 17}, Student{name wangwu, age 18}]}
}
class Student{private String name;private int age;public Student() {}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String toString() {return Student{name name , age age };}
}
2.binarySearch
语法Arrays.binarySearch(数组元素)
返回查找元素的索引 前提是传入的数组必须是升序的
注意
如果该元素存在 则返回他在数组中的索引值
如果该元素不存在 则返回 -插入值-1
插入值是根据从小到大的顺序 该元素如果在数组中存在 它的索引值
import java.util.Arrays;public class test2 {public static void main(String[] args) {// 1.Arrays.binarySearch(数组,元素) 返回元素在数组中的索引int [] arr1new int[]{1,2,3,4,5,6,7,8,9,10};int index1Arrays.binarySearch(arr1,4);int index2Arrays.binarySearch(arr1,10);int index3Arrays.binarySearch(arr1,-1);System.out.println(index1);// 3 元素值为4在数组中的索引为3System.out.println(index2);// 9 元素值为10在数组中的索引为9System.out.println(index3);// -11 元素值在数组中不存在的索引为-插入值-1// 元素-1如果在数组(已经按照升序排列)存在 那么它的位置应该在0索引处 这就是它的插入值 再减一 得到它的索引}
}
3.copyOf
语法Arrays.copyOf(老数组新数组的长度)
如果新数组的长度小于老数组的长度 则会部分拷贝从左往右拷贝
如果新数组的长度等于老数组的长度 则会完全拷贝
如果新数组的长度大于老数组的长度 不仅会完全拷贝 而且多余的部分通过该数组元素数据类型的默认值来填充
组合数据类型的默认值为null
import java.util.Arrays;public class test2 {public static void main(String[] args) {// 1.Arrays.copyOf(数组,长度)int [] arrnew int[]{7,8,9,10};int [] arr1Arrays.copyOf(arr,2);int [] arr2Arrays.copyOf(arr,4);int [] arr3Arrays.copyOf(arr,8);// 如果直接输出数组名 则结果是数组的地址// 如果想要输出数组的元素 则可以通过Arrays.toString()System.out.println(arr1);// [I4eec7777System.out.println(arr2);// [I3b07d329System.out.println(arr3);// [I41629346System.out.println(Arrays.toString(arr1));// [7, 8]System.out.println(Arrays.toString(arr2));// [7, 8, 9, 10]System.out.println(Arrays.toString(arr3));// [7, 8, 9, 10, 0, 0, 0, 0]String [] arr_1new String[]{AAA,BBB,CCC};String [] arr4Arrays.copyOf(arr_1,2);String [] arr5Arrays.copyOf(arr_1,3);String [] arr6Arrays.copyOf(arr_1,5);System.out.println(Arrays.toString(arr4));// [AAA, BBB]System.out.println(Arrays.toString(arr5));// [AAA, BBB, CCC]System.out.println(Arrays.toString(arr6));// [AAA, BBB, CCC, null, null]Student student1new Student(zhangsan,20);Student student2new Student(lisi,17);Student student3new Student(wangwu,18);Student [] arr7new Student[]{student1,student2,student3};Student [] arr8Arrays.copyOf(arr7,4);System.out.println(Arrays.toString(arr8));// [Student{name zhangsan, age 20}, Student{name lisi, age 17}, Student{name wangwu, age 18}, null]}
}
class Student{private String name;private int age;public Student() {}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String toString() {return Student{name name , age age };}
}
4.copyOfRange
语法Arrays.copyOfRange(开始索引结束索引)
从开始索引拷贝到结束索引包括开始索引但是不包括结束索引
import java.util.Arrays;public class test2 {public static void main(String[] args) {// 1.Arrays.copyOfRange(数组,长度)int [] arrnew int[]{7,8,9,10};// 从索引0拷贝到索引3 不包括索引3int [] arr1Arrays.copyOfRange(arr,0,3);System.out.println(Arrays.toString(arr1));// [7, 8, 9]String [] arr_1new String[]{AAA,BBB,CCC,DDD};// 从索引1拷贝到索引3 不包括索引3String [] arr2Arrays.copyOfRange(arr_1,1,3);System.out.println(Arrays.toString(arr2));// [BBB, CCC]Student student1new Student(zhangsan,20);Student student2new Student(lisi,17);Student student3new Student(wangwu,18);Student [] arr_1_1new Student[]{student1,student2,student3};// 从索引0拷贝到索引1 不包括索引1Student [] arr3Arrays.copyOfRange(arr_1_1,0,1);System.out.println(Arrays.toString(arr3));// [Student{name zhangsan, age 20}]}
}
class Student{private String name;private int age;public Student() {}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String toString() {return Student{name name , age age };}
}
5.fill
语法Arrays.fill(数组新数据)
用新数据填充数组的每一个元素注意是直接在原数组中进行覆盖
import java.util.Arrays;public class test2 {public static void main(String[] args) {// 1.Arrays.fill(数组,新数据)int [] arrnew int[]{7,8,9,10};Arrays.fill(arr,100);System.out.println(Arrays.toString(arr));// [100, 100, 100, 100]String [] arr1new String[]{AAA,BBB,CCC,DDD};Arrays.fill(arr1,ppp);System.out.println(Arrays.toString(arr1));// [ppp, ppp, ppp, ppp]Student student1new Student(zhangsan,20);Student student2new Student(lisi,17);Student student3new Student(wangwu,18);Student [] arr2new Student[]{student1,student2,student3};Arrays.fill(arr2,student3);System.out.println(Arrays.toString(arr2));// [Student{name wangwu, age 18}, Student{name wangwu, age 18}, Student{name wangwu, age 18}]}
}
class Student{private String name;private int age;public Student() {}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String toString() {return Student{name name , age age };}
}
6.sort
语法1Arrays.sort(数组)
对数组进行排序 默认是升序排序 注意是直接在原数组中进行排序
补充字符串之间的比较是基于它们每个字符的Unicode值进行的。
import java.util.Arrays;public class test2 {public static void main(String[] args) {// 1.Arrays.sort(数组)int [] arrnew int[]{100,20,89,1,-10,65};Arrays.sort(arr);System.out.println(Arrays.toString(arr));// [-10, 1, 20, 65, 89, 100]String [] arr1new String[]{i,like,pen,and};Arrays.sort(arr1);System.out.println(Arrays.toString(arr1));// [and, i, like, pen]}
} 语法2Arrays.sort(数组排序规则)
Arrays.sort(数组, (o1,o2)-o2-o1);
是降序排序 其中o1,o2可以换成任何变量名
总结如果是(o1,o2)-o2-o1则是降序 如果是(o1,o2)-o1-o2则是升序
根据排序规则对数组进行排序 只能给引用数据类型排序 如果要给基本数据类型排序 则需要将基本数据类型转化为对应的包装类
import java.util.Arrays;
import java.util.Comparator;public class test2 {public static void main(String[] args) {// 1.Arrays.sort(数组,排序规则)Integer [] arrnew Integer[]{100,20,89,1,-10,65};/*这个降序是通过Comparator接口实现的 方法的参数是接口当我们要调用方法时 需要传入该接口的实现类Comparator接口的compare方法:该方法是用来排序的 需要传入两个参数 Integer o1 Integer o2规定数组的0索引为有序序列 0索引以后为无序序列o1表示从无序序列中遍历得到的每一个元素o2表示从有序序列的元素返回值为正 表示当前插入的元素小于有序序列的元素 放在后面返回值为负 表示当前插入的元素大于有序序列的元素 放在前面*/// 未通过lamdba表达式简化Arrays.sort(arr,new ComparatorInteger(){Overridepublic int compare(Integer o1,Integer o2){return o2-o1;}});System.out.println(Arrays.toString(arr));// [100, 89, 65, 20, 1, -10]// 通过lamdba表达式简化Arrays.sort(arr, (o1,o2)-o2-o1);System.out.println(Arrays.toString(arr));// [-10, 1, 20, 65, 89, 100]}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83035.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!