Arrays类操作数组的使用

来源:互联网 发布:变声软件 直播 编辑:程序博客网 时间:2024/05/06 14:31

java中可以使用Arrays类中的一些static修饰的静态方法来直接操作数组


1.二分法查找 数组元素

Arrays.binarySearch(数组需要查找的元素);

PS:获得的结果过一个int类型的角标

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义一个数组String[] a=new String[]{"a","b","c","d","e"};//使用二分法查找数组元素cSystem.out.println(Arrays.binarySearch(a,"c"));}}

输出结果是2,因为数组是从0角标开始,数组元素c正好处于2角标位置


2.指定范围的二分法查找数组元素

Arrays.binarySearch(数组,从角标位置开始,角标位置结束,需要查找的元素);

PS:获得的结果过一个int类型的角标

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义一个数组int[] a=new int[]{1,85,23,45,95,20};//使用指定范围的二分法 需要先将数组按升序排列Arrays.sort(a);for(int i:a){//可以看到数组已经被排序System.out.println(i);}//使用二分法查找数组元素c,输出结果为1System.out.println(Arrays.binarySearch(a,0,5,20));}}

3.数组复制

Arrays.copyOf(被复制的数组新数组的长度);

PS:返回的是一个数组类型

PS:如果新数组的长度<原数组的长度,则只复制新数组长度的元素

如果新数组长度>原数组长度,则超出原数组的部分用0、false、null补全

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义一个数组int[] a=new int[]{1,85,23,45,95,20};int[] b=Arrays.copyOf(a,6);for(int c:b){//输出结果为{1,85,23,45,95,20},与数组a完全一致System.out.println(c);}}}

4.复制指定范围的数组

Arrays.copyOfRange(原数组从角标位置开始复制角标位置结束复制);

PS:返回一个数组类型

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义一个数组int[] a=new int[]{1,85,23,45,95,20};//复制指定范围的数组int[] b=Arrays.copyOfRange(a,4,5);for(int c:b){//输出结果为95,从数组a的角标4开始角标5结束,不包含角标5System.out.println(c);}}}

5.比较数组

Arrays.equals(数组A数组B);

PS:返回一个Boolean类型

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义3个数组int[] a=new int[]{1,2,3,4};int[] b=new int[]{2,2,2,2};int[] c=new int[]{1,2,3,4};//数组a与数组b不同,输出falseSystem.out.println(Arrays.equals(a,b));//数组a与数组c完全相同,输出trueSystem.out.println(Arrays.equals(a,c));}}

6.为数组赋值

Arrays.fill(原数组赋值的元素)

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义1个数组int[] a=new int[]{1,2,3,4};//为数组a所有角标均赋值为3Arrays.fill(a,3);for(int b:a){//输出元素均为3System.out.println(b);}}}

7.为指定范围的数组赋值

Arrays.fill(原数组从角标位置开始到角标位置结束赋值元素);

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义1个数组int[] a=new int[]{1,2,3,4};//为数组a[0,1)角标赋值为5Arrays.fill(a,0,1,5);for(int b:a){//输出结果System.out.println(b);}}}

8.对数组进行升序排序

Arrays.sort(原数组);

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义1个数组int[] a=new int[]{5,2,7,4};//对数组a进行排序Arrays.sort(a);//输出结果2,4,5,7for(int b:a){System.out.println(b);}}}

9.对指定范围的数组进行排序

Arrays.sort(原数组从角标位置开始到角标位置结束);

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义1个数组int[] a=new int[]{5,2,7,4,9,8};//对数组a进行排序Arrays.sort(a,0,3);//输出结果2,5,7,4,9,8//[0,3)角标元素被排列for(int b:a){System.out.println(b);}}}

10.将数组转换成字符串

Arrays.toString(原数组);

import java.util.Arrays;public class Test  {public static void main(String[] args) {//定义1个数组String[] a=new String[]{"HELLO","WORLD","hello","world"};//将数组转换成字符串String b=Arrays.toString(a);//输出结果[HELLO,WORLD,hello,world]//元素之间用,和空格分隔System.out.println(b);}}


0 0
原创粉丝点击