数组的定义
数组第一种定义方式,静态初始化,即在定义数组的同时为数组赋值
int[] arr = new int[] {1,2,3,4,5};
char[] arr1 = {1,2,3,4,5};
数组第二种定义方式,动态初始化,即在定义数组时不赋值,需要使用了再赋值
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
使用数组的弊端,数组的长度一定,如果数据超出长度会很麻烦,他的优势访问方便,使用下角标直接访问。
数组的引用
int[] arr = new int[];
new int[ ] 开辟数组空间,并把这个地址赋给 arr ,数组是引用数据类型,具有引用数据类型的特性。
int[] arr = new int[]{1,2,3,4,5,6};
int[] temp = arr;
temp[0] = 2;
代码的内存引用分析
由于传的是地址的值,temp导致 arr[0] 变成2,这就是数组的引用。
数组倒置与数组排序
package ailiyun;
public class Demo1 {
public static void main(String[] args) {
int[] arr1 = new int[] {1,22,3,41,5,16};
int[] temp = arr1;
ArrayUitl1.Inter(arr1);
ArrayUitl1.move(arr1);
}
}
package ailiyun;
import java.util.Arrays;
public class ArrayUitl1 {
public static void move(int[] arr) {
for(int i=0;i<arr.length;i++)
for(int j=0;j<arr.length-i-1;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
System.out.println("排序:"+Arrays.toString(arr));
}
public static void Inter(int[] arr) {
int n=0;
int m=arr.length-1;
for(int i=0;i<arr.length/2;i++) {
int temp=arr[n];
arr[n++]=arr[m];
arr[m--]=temp;
}
System.out.println("倒置:"+Arrays.toString(arr));
}
}
对象数组
和之前数组不一样的地方就在数据类型换成了引用数据类型——类。
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
Person[] person = new Person[] { new Person("张三"),new Person("王二")};
System.out.println(Arrays.toString(person));
}
}
class Person{
private String name;
public Person(String name) {
this.name = name;
}
//set方法不写了
public String getName() {
return this.name;
}
public String toString() {
return "姓名:"+this.name;
}
}