数组常用方法总结
1.1 使用length
public static void main(String[] args) { //求数组的长度 int[] arr=new int[]{1,2,3,4,5,6}; int length= arr.length; System.out.println(length); }
注意:
获取数组的长度,使用数组名.length
获取字符串长度,使用字符串名.length()
2.1 Arrays是什么
Arrays是操作数组相关的工具类。
Java 中提供了 java.util.Arrays 包, 其中包含了一些操作数组的常用方法.
2.2 使用toString()
import java.util.Arrays;public class Test { public static void main(String[] args) { int[] arr=new int[]{1,2,3,4,5,6}; //数组转字符串 System.out.println(Arrays.toString(arr)); }}
执行结果如下:
使用这个方法后续打印数组就更方便一些.
public static void main(String[] args) { int[] arr = {1,2,3,4,5}; int[] newArr = arr; newArr[0] = 10; System.out.println("arr: " + Arrays.toString(arr)); }
执行结果如下:
示意图:
newArr和arr引用的是同一个数组, 因此newArr修改空间中内容之后,arr也可以看到修改的结果。
3.1 使用 copyOf()
import java.util.Arrays;public class Test { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; int[] newArr = Arrays.copyOf(arr,arr.length); newArr[0] = 10; System.out.println("arr: " + Arrays.toString(arr)); System.out.println("newArr: "+Arrays.toString(newArr)); }}
执行结果如下:
示意图:
使用Arrays中copyOf方法完成数组的拷贝:
copyOf方法在进行数组拷贝时,创建了一个新的数组,arr和newArr引用的不是同一个数组。 因此newArr修改其引用数组中内容时,对arr没有任何影响。
3.2 copyOfRange()
public static <T> T[] copyOfRange(T[] original, int from, int to)
这个方法可以用来截取数组的一部分,并将其复制到一个新的数组中。
4.1使用 sort()
public static void main(String[] args) { int[] arr={1,5,3,4,6,2}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); }
执行结果如下:
sort()可以将数组正向排序
思路:
- 设定两个下标,分别指向第一个元素和最后一个元素,交换两个下标位置上的元素。
- 让前一个下标自增,让后一个下标自减,循环继续即可。
public static void main(String[] args) { int[] arr={1,2,3,4,5}; reverse(arr); System.out.println(Arrays.toString(arr)); } public static void reverse(int[] arr){ int left=0; int right=arr.length-1; while (left<right){ int tmp=arr[left]; arr[left]=arr[right]; arr[right]=tmp; left++; right--; } }
执行结果如下:
Arrays类中没有提供直接逆序的方法
6.1 使用equals()
public static void main(String[] args) { int[] arr1= {1,2,3,4,5}; int[] arr2= {1,2,3,4,5}; boolean flg = Arrays.equals(arr1,arr2); System.out.println(flg);}
执行结果如下:
来源地址:https://blog.csdn.net/m0_63904107/article/details/132185805