java数组的基础知识点总结

数组的定义

数组是一种数据结构,用来储存同一类型的集合。通过一个整型下标可以访问数组中的每一个值。

数组的创建

创建数组时需要指出数组类型(数组元素类型后面紧跟[ ])和数组变量名字,还要使用new为数组在内存空间中开辟一片运行空间。

  1. 数据类型[ ] 变量名=new 数据类型[储存元素的个数];

  2. 数据类型[ ] 变量名=new 数据类型[ ]{元素1,元素2,元素3};
    注:new后面的中括号不允许写任何内容,会出错

  3. 数据类型[ ] 变量名={元素1,元素2,元素3};

    数据类型:数组中储存元素的数据类型
    [ ]:表示数组的意义
    变量名:自定义标识符,表示数组的地址,每次运行时都不一定在一个位置
    new:创建容器关键字
    元素个数:就是数据中,可以储存多少个数据(恒定,定义)

  4. 一旦创建了数组它的元素个数将不再可以改变(尽管可以改变每个元素的值),要想获得数组中元素的个数用 数组名.length.

  5. 自动编号的专业名词是索引,索引的大小是
    0~(length-1).

  6. 访问数组中的 元素必须 数组名[索引],如果该数组中没有储存元素,那么访问出来的数组将默认是0.

数组的异常

  1. 数组的索引越界异常(索引为负或者超过数组长度)

  2. 空指针异常 int[ ] 数组名={1,5,8}; 数组名[]=null;
    null是“空”的意思,表示将数组名中原本代表的地址清除
    此时再输入:System.out.println(数组名[]);
    将会出现异常

数组的遍历

将所有的元素,依靠索引全获取出来

  1. 利用循环for
 for(int i=0;i<数组名.length;i++){
                      System.out.println(数组名[i]);
                      }
  1. 利用foreach循环
foreach(int i:arr)
  System.out.println(i);
  1. 利用Arrays.toSting(数组名)
System.out.println(Arrays.toSting(arr));

将会打印一串包含数组元素的字符串,这些元素被放在括号内用逗号分隔,例如“[1,2,4,6,78,8]”。

数组的拷贝

数组brr,要拷贝已经定义数组arr其中元素的个数,位置大小

浅拷贝

int[]arr={1,3,5,6,9,5};
  brr=arr;
  brr[2]=20;//new arr[2]也等与20

这种拷贝只是将arr所表示的数组在栈中的地址代码拷贝到了brr中,brr所引用的数组与arr其实就是同一个。因此叫它浅拷贝。

深拷贝

  1. 利用for循环结构,逐个将数组arr中的值赋给已经进行了空间开辟的数组brr
int[]arr={1,3,5,7,8,0};
int[]brr=new int[arr.length];
for(int i=o;i<arr.length;i++){
  brr[i]=arr[i];
  }
  brr[2]=30;//此时arr[2]=5
  1. 利用Arrays类中的copyOf方法
//arr中所有的元素均被拷贝到brr中,第二个参数便是新数组的长度
int[]brr=Arrays.copyOf(arr,arr.length);
//该方法也可用来增加数组的长度
brr=Arrays.copyOf(arr,2*arr.length);

*如果元素类型是数值型,多余的元素将被赋值为0,如果是布尔型将被赋值为false
*如果长度小于原始数组的长度则只拷贝最前面的值

  1. 用System类的arraycopy方法进行拷贝
    System.arraycopy(from,fromIndex,to,toIndex,count);
System.arraycopy(arr,0,brr,0,arr.length);
//拷贝从arr的0索引开始到brr的0索引开始,一共拷贝arr.length个元素

猜你喜欢

转载自blog.csdn.net/y75xwr/article/details/83017797