- 数组的长度初始化后不可变,而String类型初始化后值不可变
- 提到数组和字符串,就不得不提两者很容易混淆的length和length()属性,下面这篇文章对比了两者:https://mp.youkuaiyun.com/mp_blog/creation/editor/124241868
https://mp.youkuaiyun.com/mp_blog/creation/editor/124241868
- 初始化数组时 不要既动态初始化又静态初始化,即不要既指定长度又分配初始值
下面是错误示范:int[] x = new int[3]{1,2,3};
正确写法:
int[] x = new int[3]; x[0] = 1; x[1] = 2; x[3] = 3;
或者:
int[] x = new int[]{1,2,3};
- Arrays增强类(使用时必须在程序中导入java.util.Arrays)
·int BinarySearch(type[] a,type key):使用二分法查询key元素值在数组a中出现的索引,若没有,则返回负数。(注:使用该方法时,数组必须已经按升序排序)
·int BinarySreach(type[] a,int fromIndex,int toIndex,type key):与上一个方法类似,但只搜索从fromIndex到toIndex索引值的元素。
·type[] copyOf(type[] original,int length):把original数组复制成一个新数组,新数组长度为length。
·type[] copyOfRange(type[] original,int from,int to):只复制original数组的from索引到to索引的元素
·boolean equals(type[] a,type[] a2):如果数组a和数组a2的长度相等,元素也一一相等,则返回true。
·void fill(type[] a,type val):把a所有元素都赋值为val。
·void sort(type[] a):对数组a进行排序。
·String toString(type[] a):将一个数组转换成字符串 - 应用如下:
结果如下:package jjm; import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = new int[] {3,4,5,6}; int[] a2 = new int[]{3,4,5,6}; System.out.println("a数组与a2数组是否相等:"+Arrays.equals(a, a2)); int[] b = Arrays.copyOf(a, 6); System.out.println("a数组和b数组是否相等:"+Arrays.equals(a,b)); System.out.println("b数组的元素为:"+Arrays.toString(b)); Arrays.fill(b, 2, 4, 1); System.out.println("b数组的元素为:"+Arrays.toString(b)); Arrays.sort(b); System.out.println("b元素的元素为:"+Arrays.toString(b)); } }
a数组与a2数组是否相等:true a数组和b数组是否相等:false b数组的元素为:[3, 4, 5, 6, 0, 0] b数组的元素为:[3, 4, 1, 1, 0, 0] b元素的元素为:[0, 0, 1, 1, 3, 4]
12-03
1000

11-15