Java之一维数组

Java中,数组是一个变量,相当于是个容器,储存的是相同类型的一组数据
数组只是一个名称,即标识符。

一维数组,可以理解为只能存放一行相同数据类型的数据。在Java中如果要使用数组,需要先声明数组,然后再分配数组内存(即,可以存放多少个数据)

数组定义方式大致有三种:
1)数据类型[ ] 数组名 = {数据}
int[] arr={1,2,3,4,5};//从C中继承而来
2)数据类型[ ] 数组名 = 初值
Int[] arr = new int[100];// int:0 放的整型的默认值
注意:数组中的长度一旦确定,就不能随意更改
3)Int[] arr = new int[]{1,2,3,4,5};
其中,new 进行内存的开辟 <等价于(1)>

数组的访问:
1)数组中存放的数据,即数据中的元素。如果要访问这些数据,需要使用索引,也即通过数组下标来访问。如上面的定义:int Height[] = new int[40]; 如果我们要访问第20个数据,即要使用下标20-1=19,即Height[19],来访问数据。
2)为什么要用Height[19]来访问第20个数据呢。
这是因为,Java中数据的索引开始是从0开始的,即第一个数据存放在0块内存块上的。依次递推。由于,我们还未给数组赋值。现在在的我们还无法访问数组。
在Java中,我们可以通过数组名.length来获得数组的长度,即内存的分配大小。

数组遍历:

         Arr.length
1)for(int i=1; i< 4; i++){          for循环
  //(arr[i]) //i表示下标
 System.out.println(arr[i]);
}
2)foreach语句
For(int i:arr){//i 每个格子里的值
  //(i)
 System.out.println(i);
}
3)arrays.toString(arr);    System.out.println();//字符串类型
遍历每个格子里的值

数组的简单排序:

例如:for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
        if (a[i] > a[j]) {
            temp = a[i];
            a[i] = a[j];
            a[j] = temp; }}
}

数组的拷贝方法:

1)For拷贝
int[] arr = new int[4];//拷贝
int[] brr = new int[arr.length] ;
for(int i=0; i< arr.length; i++){
    brr[i] = arr[i];
}
2)int[]brr ;
Brr=arr.clone();//克隆方法(C中的函数)
Arr[0]=99;
System.out.println(brr[0]);
3)int[] arr = {1,2,3};
int[] brr =  new int[arr.length]  ;
Brr = Arrays.copyOf(arr,arr.length);
4)int[] arr = {1,2,3};
int[] brr = new int[] {5,6,7};

数组扩容方法:

*1【int[] crr = new int[6];//数组扩容
【System.arraycopy(brr,srcPos:0,crr,destPos:3,brr.length);
System.arraycopy(arr,srcPos:0,brr,destPos:3,arr.length);//会产生越界异常,需要再开辟内存<加了上面两行>
*2【 brr=Arrays.copyOf(brr,new.Length:brr.length + 3);
//相当于上面*1中的三行   

猜你喜欢

转载自blog.csdn.net/Snowing1234_5/article/details/83004758