Java:class3 一维、二维数组

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43336822/article/details/93222345

一维数组的定义,遍历,拷贝,扩容与缩容

1.一维数组:是相同数据类型的集合,一块连续内存
数组的定义
定义方式一:int []arr=new int[]{1,2,3};
定义方式二:int []arr=new int[5]; //默认值:0
定义方式三:int []arr={1,2,3}

2.new:在堆上开辟内存

3.arr.length:arr数组的长度

4.数组的遍历
(1)

for(int index=0;index<arr.length;index++)                 
                          System.out.println(arr[index]);

(2)
for(int value:arr) System.out.println(value);

(3)
System.out.println(Arrays.toString(arr));

5.ArrayIndexOutOfBoundsExcception:数组下标越界异常

6.数组的拷贝
1) for(int i=0;i<arr.length;i++ ) brr[i]=arr[i];

2) int []brr=arr.clone();

3) brr= Arrays.copyOf(arr,arr.length);

4) System.arraycopy(arr,0,brr,0,arr.length);

7.浅拷贝:拷贝出来的内容存在内存共享 //一般都是浅拷贝
深拷贝:拷贝出来的内容不存在内存共享,地址不同

8.定义grow方法进行扩容

public static void grow(int []arr)
{
    int brr[]=new int[arr.length]+1;
    System.arraycopy(arr,0,brr,0,arr,length);
    return brr;
} 
 arr=grow(arr);

9.System.arraycopy比Arrays.copyOf()运行效率高,但Arrays.copyOf()更方便

二维数组的定义,遍历,拷贝

数组的数组—二维数组的每一个元素是一个一维数组

1.二维数组的定义

 int[][] arr = new int[3][5];                             //定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数。
          int[][] arr = new int[3][];                               //表示一个包含了三个整型的一维数组的二维数组。
          int[][] arr = {{2,5},{1},{3,2,4},{1,7,5,9}};           //注意:[]在变量名前的时候,是紧跟数据类型的;如果[]在后,则是属于当前变量名。
          

2.二维数组的拷贝
(1)

for(int i=0;i<arr.length;i++)
                     for(int j=0;j<arr[i].length;j++)
                            brr[i][j]=arr[i][j];

(2)

int [][]brr=Arrays.copyOf(arr,arr.length);  //浅拷贝,brr使用的仍是同一块数据,地址一样。
          for(int i=0;i<arr.length;i++)
               brr[i]=Arrays.copyOf(arr[i],arr[i].length);
               

3.二维数组的遍历

 int [][]b={{2,2},{3,2}};
            for(int i=0;i<b.length;i++)
                for(int j=0;j<b[0].length;j++)
                    System.out.print(b[i][j]+"  ");
                    

4.arr.length:有几行,即几个一维数组
arr[0].length:有几列,即每个一维数组有几位

5, 将string转化为char数组:

String str="abcde";
char[] c=new char[str.length()];
c=str.toCharArray();    
                                                

6.next()以空格,回车,tab等结束字符串,nextline只以回车

7.split(“*”):以**分割字符串

                String []arr=str.split(" ");    

猜你喜欢

转载自blog.csdn.net/qq_43336822/article/details/93222345