Java SE——数组

一、数组的基本概念

1.一维数组的初始化

(1)数组的动态初始化:数组首先先开辟内存空间,然后使用索引进行内容的设置

方法一:数据类型[] 数组名称=new 数据类型[长度]
方法二:分部进行数组的实例化

注:数组在使用前一定要进行实例化(一定要new),开辟一块新的空间

(2)数组的静态初始化:数组在定义的同时进行设置

方法一(完整格式):数据类型[] 数组名称=new 数据类型[] {值,值,...}

方法二(简化模式):数据类型[] 数组名称={值,值,...}

		//数组的动态初始化
		//方法一
		int[] arr1=new int[3];
		arr1[0]=1;
		arr1[1]=2;
		arr1[2]=3;
		//方法二
		int[] arr2=null;
		arr2=new int[3];

		//数组的静态初始化
		//方法一(完整格式)
		int[] arr3=new int[] {1,2,3,4,5};
		//方法二(化简模式)
		int[] arr4={1,2,3,4,5};

2.二维数组的初始化(了解)
(1)动态初始化

数据类型[][] 数组名称=new 数据类型[行个数][列个数]

(2)静态初始化
数据类型[][] 数组名称=new 数据类型[][] {(值,值,...),(值,值,...)(值,值,...),...}
3.数组的引用传递

public class Test_60{
	public static void main(String[] args) {
		int[] arr1=new int[3];
		arr1[0]=1;
		arr1[1]=2;
		arr1[2]=3;
		System.out.println(arr1.length);//数组长度为3
		for(int i=0;i<arr1.length;i++)
		{
			System.out.println(arr1[i]);//打印数组arr1的内容为1 2 3
		}
		int[] arr2=null;
		arr2 = arr1;//发生引用传递,不需要[]
		arr2[2]=5;//修改数据
		System.out.println(arr1[2]);//5 
		System.out.println(arr2[2]);//5
	}
	
	
}

二、数组与方法互操作
(1)方法接收数组
(2)方法返回数组
(3)方法修改数组
public class Test {
	//定义方法接收数组
	public static void PrintArry(int[] arr1) {
		for(int i=0;i<arr1.length;i++)
		{
			System.out.println(arr1[i]);
		}		
	}
	//定义方法返回数组
	public static int[] GetArry() {
		int[] arr2=new int[] {1,2,3,4};
		return arr2;
		
	}
	//定义方法修改数组
	public static void Bigger(int[] arr3) {
		for(int i=0;i<arr3.length;i++)
		{
			System.out.println(arr3[i]*5);
		}
		
	}
	public static void main(String[] args) {
		int arr[]=GetArry();
		PrintArry(arr);//1 2 3 4
		Bigger(arr);//5 10 15 20
	}
	
	
}

三、Java支持的数组操作
1.数组排序(升序)
Java提供了一条语句自动将数组进行升序排序

java.util.Arrays.sort(数组名称)

2.数组拷贝
将一个数组的部分内容替换掉另一个数组的一部分内容
System.arraycopy(源数组名,源数组开始位置,目标数组名,目标数组开始位置,拷贝长度)
 
 
public class Test {
	public static void PrintArry(int[]arr) 
	{  
		for(int i=0;i<arr.length;i++)  
		{   
			System.out.println(arr[i]);  
		} 
	} 

	public static void main(String[] args) 
	{  
		int[]arr1=new int[] {1,7,2,8,9,4};  
		int[]arr2=new int[] {11,77,22,88,99,44};
		//数组排序  
		java.util.Arrays.sort(arr1);//1 2 4 7 8 9  
		java.util.Arrays.sort(arr2);//11 22 44 77 88 99  
		PrintArry(arr1);  PrintArry(arr2);
		//数组拷贝  
		System.arraycopy(arr1, 1, arr2, 2, 3);//11 22 2 4 7 99  
		PrintArry(arr2);   
	}
}

四、对象数组

对象数组的初始化操作

(1)动态初始化

            类名[] 对象数组名=new 类名[长度]

(2)静态初始化

public class Test {	
	public static void main(String[] args) {
		//对象数组动态初始化
		Person[]per1=new Person[2];
		per1[0]=new Person("张三",1);
		per1[1]=new Person("李四",2);
		for(int i=0;i<per1.length;i++)
		{
			per1[i].GitInfo();
		}
		//对象数组的静态初始化
		Person[] per2=new Person[] {new Person("HH", 5),new Person("YYY", 6)};
		for(int i=0;i<per2.length;i++)
		{
			per2[i].GitInfo();
		}
	}	
}
class Person
{
	private String name;
	private int age;
	public Person(String name,int age) {
		this.name=name;
		this.age=age;
	}
	public void GitInfo() {
		System.out.println("姓名"+this.name+"年龄"+this.age);
	}
}

猜你喜欢

转载自blog.csdn.net/l_x_y_hh/article/details/79905342