Java数组概念&数组的创建&遍历数组&数组工具类Arrays

一、数组:

	概念:Array适用于存储多个相同数据的集合。想要获取数组中的元素,可以通过元素的下标来获取,下表是从0开始的。
	特点:
	1.可以存放多个数据
	2.只不过要求数据都是相同的类型
	3.数组里的每个数据都有为一亿的标志。叫下标(角标),默认从0开始
	4.数组的标志是[],英文是Array

二、数据的创建:

	数组类型[] 数组名=初始化
	
    1.静态初始化(比动态初始化多一步完成了动态初始化后赋值)
	int[] a=new int[]{1,2,3,4,5};
	int[] b={1,2,3,4,5];
	
	2.动态初始化
	int[] c=new int[5];
	底层发生的事情:
	1.在内存中开辟空间,从放数组,长度是5
	2给数组中的数据完成初始化,int类型的默认值是0
	3给数组分配唯一的地址值
	4.在内存中开辟空间,存放引用类型的变量
	5.把数组的地址值交给引用类型的变量c保存(引用类型存放的是一个地址值)

练习1:数组中存入hello
package cn.tedu.array;

	//这个类用来测试 数组的创建
	public class Test6_Array {
		public static void main(String[] args) {
			//1、创建数组 ,存入hello
			//--静态初始化 :一开始刚创建好时,存的都是默认值,char类型默认值是\u0000。
			char[] a = new char[] { 'h' , 'e' , 'l' ,'l' ,'o'  } ;
			char[] b = {  'h' , 'e' , 'l' ,'l' ,'o'  } ; 
			
			//--动态初始化,需要在创建数组的同时,指定长度!!
			char[] c = new char[5];
			c[0] = 'h' ; //把下标为0的数据,从默认值\u0000改为'h'
			c[1] = 'e' ;//把下标为1的数据,从默认值\u0000改为'e'
			c[2] = 'l' ;//把下标为2的数据,从默认值\u0000改为'l'
			c[3] = 'l' ;//把下标为3的数据,从默认值\u0000改为'l'
			c[4] = 'o' ;//把下标为4的数据,从默认值\u0000改为'o'
			
			//数组的长度如果是5,下标最大值是4的话,有没有下标为5的元素---没有!!!
			//java.lang.ArrayIndexOutOfBoundsException:原因就是访问了不存在的下标5
			//c[5] = 'x';
			
			System.out.println(a);
			System.out.println(b);
			System.out.println(c);
		}
	}

三、遍历数组

		1.语法:
		fro(开始位置;循环条件;更改条件){循环体}
		for(从下标为0的位置开始;下标的最大值是数组的长度-1;小标自增){循环体}
		
		2.获取数组长度
		length属性,可以获取数组的长度
		
		3.练习1:输出每个月的天数
		public static void method(){
		//创建数组,存放12个数字
		int[] a={31,28,31,30,31,30,31,31,30,31,30,31}
		//遍历数组
		//int i=0 是指从下标0开始,i表示下标
		//i <= a.length-1 是指下标最大值是数组的长度-1
		//i++  是指下标一次递增,向后遍历数组
		for(int i=0;i<=a.length-1;i++){
				System.out.println(i+1 +"月有"+a[i]+"天");
		}

}

		4.练习1:输出1-10
		public static void main(String[] args) {
			method();//遍历数组,存入1-10
		}
		public static void method() {
		//1,创建数组,动态初始化
		int a[] = new int[10];
	
		//2,遍历数组,根据下标
		for(int i=0;i<a.length;i++) {
		//3,根据下标获取每个数据,修改成1-10
			a[i]=i+1;//a[i]根据下标i获取a数组中的疏忽
		}
	
		//4,答应数组的数据(还是需要遍历,输出每个数据)
		System.out.println(a);//[I@340f438e 地址值
		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);//a[i]根据下标i获取a数组的数据
		}
	}

四、数组工具类Arrays

	1.针对数组的相关操作,提供一系列的支持(一堆方法)
	2.常用方法:
		toString():把数组的数据变成字符串展示
		sort():把无序数组排序
		copyOf():复制数组

	    练习1:
 public static void main(String[] args) {
	method();//toString():把数组的数据变成字符串展示
	method2();//sort():把无序数组排序,从小到大
	method3();//copyOf():复制数组
}
public static void method3() {
	//创建原数组

	//copyOf(m,n)--m是原数组名,n是新数组长度
	//其中,第二个参数n,如果新数组的长度》原数组长度,相当于在扩充新位置 -- 扩容
	//如果新数组的长度《原数组的持仓度,相当于在截取数据 -- 缩容
	int a[] = {1,2,3,4,5};
	int[] b=Arrays.copyOf(a, 10);

	System.out.println(Arrays.toString(b));//[1,2,3,4,5,0,0,0,0,0]
	int[] c=Arrays.copyOf(a, 3);//[1,2,3]
	System.out.println(Arrays.toString(c));
}

public static void method2() {
	int[] a= {8,5,5,7,4,0};
	//自定义排序算法--冒泡排序/快速排序/合并排序
	Arrays.sort(a);
	System.out.println(Arrays.toString(a));//[0, 4, 5, 5, 7, 8]
}

public static void method() {
	int[] a= {1,2,3,4,5};
	//以前都想看数组里的数据,只能遍历
	for(int i=0;i<a.length;i++) {
		System.out.println(a[i]);
	}
	//现在-使用数组工具类Arrays.toString(a)--把a数组中的所有数组转成字符串展示
	System.out.println(Arrays.toString(a));//[1,2,3,4,5]
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值