补充知识点——Arrays的常用方法(Java)

目录

1.Arrays.toString()方法

2.Arrays.sort()方法

3.Arrays.equals()方法

4.Arrays.binarySearch()方法

5.Arrays.copyOf()方法

6.Arrays.copyOfRange()方法

7. Arrays.aslist()方法

8. Arrays.fill()方法


在Java中Arrays包中的很多方法的功能十分的强大,在设计算法时十分的重要,可以很好的简化代码,所以在这里补充一下有关Arrays的常用方法。

Arrays的常用方法是在Arrays类当中的,所以导包是:java.util.Arrays

1.Arrays.toString()方法

作用:toString方法用于将数组转换为字符串,可以快速的输出数组的内容

int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); 

运行的结果是

2.Arrays.sort()方法

作用:给数组排序,默认是升序的。

int[] arr = {5, 2, 3, 1, 4};
Arrays.sort(arr); 
System.out.println(Arrays.toString(arr)); 

运行结果是:

 另一种重载形式:Arrays.sort(数组名,起始下标,排序个数)

Scanner s = Scanner(System.in);
int n = s.nextInt();
int[] a = new int[n]
for(int i = 0; i < n; i++)
   a[i] = s.nextInt();
Arrays.sort(a,0,n - 1);

作用:输入n个数,按升序排列

:对字符串进行排序是对每一个字符比较,而不是简单的比较长度。像

 str1 = abcdf
 str2 = abcdef

因为f大于e所以str1>str2

3.Arrays.equals()方法

作用:比较数组内容是否相等,如果相等返回true,否则返回false

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2);
System.out.println(isEqual);

运行的结果是:

或者两个对象的地址是否相等,如果相等返回true,否则返回false

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3)); 

运行结果是:  

分析:在上面的示例中str1和str2都是字符串常量,它们的地址相同,所以结果返回第4行返回的结果是true(说明:在Java中,字符串常量是被放在常量池当中的,常量池中的字符串常量是可以共享的,所以说多个字符串常量的值相等的话,那么它们在常量池当中的地址也是相等的,所以str1和str2的地址相等。注意使用new关键字创建字符串对象,每次都是在中创建一个新的对象,所以它们的地址不相同),上面的示例中str3和str1的地址显然是不同的,但是String类已经重写了equals的方法,所以重写后比较的就是字符串的内容是否相等,所以第5行返回的结果是true。

注:这个方法的适用场景是java提供的各种数据内容,例如(数组,字符串,各种集合...)判断它们是否相等,如果比较自己写的类时,就要重写这个方法了。 

4.Arrays.binarySearch()方法

作用:在数组中查找元素,如果找到返回找到的元素在数组中的下标,如果没找到就返回-1。一般只要返回的值>=0就代表找到了。

int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 3);
System.out.println(index);

运行的结果是:

5.Arrays.copyOf()方法

作用:复制指定数组,当中的第一个参数是复制的原数组,第二个参数是复制的长度

int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr1, 5);
System.out.println(Arrays.toString(arr2));

运行的结果是:

这个的返回值是一个新的数组,所以会改变接受这个新数组的引用的一些属性

int[] arr1 = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr2 = new int[5];
arr2 = Arrays.copyOf(arr1, 10);
System.out.println("复制后,arr2的长度是:"+arr2.length);
System.out.println("Arr2的内容是:"+Arrays.toString(arr2));

运行的结果是:

分析:就是原本的arr2数组的长度是5,但是在进行复制后它的长度变为10了

6.Arrays.copyOfRange()方法

作用:是上个方法的改进版,上面这个方法只能从下标为0的地方开始完成对数组的复制,但是这个方法里可以指定起始位置和结束位置

int[] arr1 = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr2 = new int[5];
arr2 = Arrays.copyOfRange(arr1,3,5);
System.out.println("Arr2的内容是:"+Arrays.toString(arr2));

运行的结果是:

7. Arrays.aslist()方法

作用:数组转化为List集合

Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
System.out.println(list);

运行的结果是:

Arrays.aslist()返回的集合是一个视图,该集合和原数组共享一份数据,所以修改集合中的元素会改变原数组中的元素,演示代码如下:

public class experiment {
    public static void main(String[] args) {
        Integer[] arr = {1, 2, 3, 4, 5};
        List<Integer> list = Arrays.asList(arr);
        list.set(0,2);
        System.out.println(list);
    }
}

运行的结果是:

8. Arrays.fill()方法

作用:指定的值填充数组

public class experiment {
    public static void main(String[] args) {
        int[] arr = new int[5];
        Arrays.fill(arr, 10);
        System.out.println(Arrays.toString(arr));
    }
}

运行的结果是:

  • 7
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值