【java基础】第五课:数组

一:数组

数组(Array)是存储多个相同类型数据的容器。标志是一对中括号:[]。

特点:

想要获取数组中的元素,可以用下标来获取,下标如下图,是从0开始的,数组下标的最大值,数组长度-1。

数组的空间是连续的。

创建数组:

动态初始化:指定数组类型[] 数组名=new 数组类型[数组长度];例:int[] a = new int[5];创建数组长度为5的数组。不知道要存的数据用这用。

静态初始化:指定数组的类型[] 数组名=new 数组的类型[数组的长度{数组的值} ;例int[] a =new int[]{1,2,3,4,5};也可以int[] a ={1,2,3,4,5,6,7,8};知道要存的数据用这种。·

静态初始化和动态初始化时相同的,只不过区别在于在第2步的时候,将分配的默认值改为指定的大括号里的值。

public class Test1_hello {
	public static void main(String[] args) {
//		静态初始化
		char[] hello=new char[] {'h','e','l','l','o'};
		char[] hello1= {'h','e','l','l','o'};
//		动态初始化  char类型的默认值为\u0000
		char[] hello2=new char[5];
		//修改元素的默认值,要结合下标。如果不修改元素,数组元素还是默认值,但是不识别,显示为空格。
		hello2[0]='h';
		hello2[1]='e';
		hello2[2]='l';
		hello2[3]='l';
		hello2[4]='o';
		
	}

}

常见错误:如果如果遇见,要记得。

数组的长度:

  • 用length获取数组的长度。获取格式:数组名.length
  • 数组一旦创建,其长度是不可变的。
  • 允许存在长度为0的数组。

例子:

public class Test1_hello {
	public static void main(String[] args) {
//		静态初始化
		char[] hello=new char[] {'h','e','l','l','o'};
		char[] hello1= {'h','e','l','l','o'};
//		动态初始化  char类型的默认值为\u0000
		char[] hello2=new char[5];
		//修改元素的默认值,要结合下标。如果不修改元素,数组元素还是默认值,但是不识别,显示为空格。
		hello2[0]='h';
		hello2[1]='e';
		hello2[2]='l';
		hello2[3]='l';
		hello2[4]='o';
//		System.out.println(hello2);
		System.out.println(hello.length);
		
	}

}

结果:

数组的遍历:从头到尾依次获取数组中的元素。数组的遍历利用下标,int i=0;是说从下标为0的数开始,i<i.length是说遍历数组的长度那么多个,i++是说下标的变化依次加1。

for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
  }

练习一:输出每月的天数

public class Test2_Array2 {
	//輸出每月的天數
	public static void main(String[] args) {
		int[] days={31,29,31,30,31,30,31,31,30,31,30,31};
		for (int i = 0; i < days.length; i++) {
			System.out.println(i+1+"月有"+days[i]+"天");
		}
	}

}

结果:

练习二:存入1-10

public class Test3_Array3 {
	/**
	 * 存入1-10
	 * */
	public static void main(String[] args) {
		int[] arr=new int[10];
		for (int i = 0; i < arr.length; i++) {
			arr[i]=i+1;
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
		
	}
}

结果:

练习三:创建随机数组

public class Test4_Array4 {
	public static void main(String[] args) {
		Random rand=new Random();
		int[] arr=new int[5];
		for (int i = 0; i < arr.length; i++) {
			arr[i]=rand.nextInt(100);
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}	
		
	}

}

结果:

数组的工具类Arrays

  • Arrays.toString(数组):把数组里的数据,用逗号连接成一个字符串。格式:[1, 2, 3, 4, 5]

  • Arrays.sort(数组):给数组进行排序,对于基本类型的数组使用优化后的快速排序算法,效率高。对引用类型数组,使用优化后的合并排序算法。

  • Arrays.copyOf(数组,新的长度):把数组复制成一个指定长度的新数组。新数组长度大于原数组,相当于复制,并增加位置。--数组的扩容新数组长度小于原数组,相当于截取前一部分数据。--数组的缩容。

练习一:toString

public class Test5_Arrays1 {
	public static void main(String[] args) {
		int[] arr=new int[] {1,2,3,4,5};
		method(arr);//toString
	}

	private static void method(int[] arr) {
		// TODO Auto-generated method stub
		System.out.println(Arrays.toString(arr));
	}

}

结果:

练习二:sort

public class Test6_Arrays2 {
	public static void main(String[] args) {
		int[] a= {9,8,5,1,4};
//      对数组进行排序
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));
	}

}

结果:

练习三:copyOf

public class Test7_Arrays3 {

	public static void main(String[] args) {
		int[] arr= {1,2,3,5,8};
		//复制数组arr,第一个参数是被复制的数组名字,第二个数组是新数组的长度
		//如果新数组的长度小于原数组,则为截取。---缩容
		//如果新数组的长度大于原数组,多出的长度处的元素用默认值代替----扩容
		int[] b=Arrays.copyOf(arr, arr.length);
		System.out.println(Arrays.toString(b));
	}
}

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值