java中数组知识的总结
数组:
1. 1:一维数组的定义:
规则一维数组的定义:
int [] array={1,2,3,4,5,6};//属于静态的初始化
int [] array=new int [] {1,2,3,4,5,6};属于动态的初始化
或者可以不对数组进行初始化:
int [] array=new int [7];
可以用两种方法对数组进行遍历访问:
1: 常见的有for循环遍历数组
for(int i=0;i<array.length;i++)
{ System.out.println( array[i] ); }
2: 还有就是foreach:
for(int x:array)
{ System.out.println( x ); }
那么他们两个的区别是什么呢?
解析: foreach是不能用下标进行访问的;for循环是通过数组下表进 行访问的
1. 2:当定义好数组未初始化值默认为为0
例如:int [] array=new int [5];
这样是默认数组中的值全是0
而当数组存的是引用类型的时候默认值为null
1. 3:在java中只有按值传递,返回的类型也可以是数组型
在java中是没有指针的,但是有引用类型;它就相当于一个低配版的指针是用来存放地址的;所以说按引用类型传递也是按值传递的;
返回的类型也可以是数组型: 返回整个数组
可以写做:return array;
1. 4:线程:
当每个线程运行一定会占用基本的三块内存空间有程序计数器+Java虚拟机栈+本地方法栈(native:底层是由c/c++实现的;特点就是:速度快)
1. 5:简单的打印一维数组:用Arrays.toString()方法
Arrays.toString()方法:是将数组以字符串的形式输出
该方法所在的包为:java.util.Arrays
1. 6:一维数组的拷贝:
1.6.1:System.arrayCopy():是被native所修饰的方法(特点是: 速度快)
1.6.2:Arrays.copyOf():底层调用了System.arrayCopy()方法 的,相对于上面的方法来说,速度相对较慢
1.6.3:数组名 . clone():用法为原数组 .(拷贝的数组)
1.6.4:用for循环实现
2.1:二维数组的定义:
2.1.1:规则定义的二维数组:
例如:int [][] array={{1,2},{3,4},{5,6}};
在内存中存储的形式是:如下图所示
一维数组存储引用,二维数组存储值
2.1.1:不规则定义的二维数组:
例如:int [][]array={{1},{3,4},{5,6}};
在内存中存储的形式是:如下图所示
再例如是: int[][]array=new int[3][];
自己进行分配的话: array[0]=new int[2];
array[1]=new int[3];
array[2]=new int[4];
在内存中存储的形式是:如下图所示
2.2:打印二位数组:
2.2.1: 用两层for循环即可:
2.2.1: 用Arrays.deepToString(array)即可;
2.3:java中数组中常用的方法:
2.3.1: Arrays.copyOfRange();部分拷贝
2.3.2: Arrays.equals(array,array1);判断两数组的内容和长度都是否相等
2.3.3: Arrays.fill(array,9);将数组全部填充为9
2.3.4: Arrays.fill(array,2,7,9);将数组从下标为2开始到下标为7[2,7);是不包括7的数组空间填充为9
2.3.5: Arrays.sort(array);对数组中的内容进行排序