数组相关概念

一、数组的概念:

数组是具有相同数据类型的一组数据的集合,数组中的每个元素具有相同的数据类型。

二、一维数组的创建

1、创建一维数组

1)先声明再用new运算符进行内存分配

声明一维数组的两种方式:
1)数组元素类型   数组名称 [ ]  ;

2)数组元素类型 [ ]     数组名称;

//声明一维数组示例代码
int arr[];        //声明int型数组,数组中的每个元素都是int型数值
String str[];     //声明String型数组,数组中每个元素都是String型数值

数组元素类型决定了数组的数据类型,数组名为一个合法的标识符,符号 [ ] 指明该变量是一个数组类型变量,单个[ ] 表示要创建的数组是一个一维数组。

声明数组之后还不能立即访问它的任何元素,因为声明数组知识给出了数组名称和数组元素的数据类型,要想真正使用数组还要给它分配内存空间。在给数组分配内存空间的时候必须指明数组的长度(这样系统才能计算出需要分配的内存空间)。

为数组分配内存空间的语法格式:

数组名字 = new  数组元素的类型 [数组元素的个数] ;

//为数组分配内存的示例代码
arr = new int [6];        
//创建一个有六个元素的整型数组,并将创建的数组对象赋值给引用变量arr
//arr为数组名称,[] 内的值为元素下标,数组通过元素下标区分数组中的元素
//数组的下标是从0开始,比如创建的数组arr有六个元素,则下标为0~5

数组元素的个数:指定数组中变量的个数,即数组的长度;

我们可以通过  数组名.length获取数组长度,比如通过    arr.length 获取数组arr的长度,即arr数组中的变量个数。

2)声明的同时为数组分配内存

这种创建数组的方法是将数组的声明和内存的分配在一起执行

语法:

数组元素的类型名 数组名 = 呢哇数组元素的类型 [数组元素的个数] ;

//示例代码
int arr[] = new int [10];

int [] arr1 = new int [10];    //这两种写法都可以

2、初始化一维数组

1)数组与基本数据类型一样可以进行初始化,数组的初始化可分别初始化数组中的每个元素。

// 数组的初始化有两种形式:
int arr[] = new int[] {1,5,6,4,6};        //第一种初始化方式
int arr2[] = {2,5,6,7,8,9};               //第二种初始化方式

由上面的代码可以看到  new int []  是可以省略的

2)数组在定义完成之后只能通过数组下标一个一个赋值,而不能一次性给多个数组元素赋值

//给单个数组元素赋值
int arr[] = new int[10];        //定义一个数组,默认数组元素值都为0
arr[2] = 6;                     //将数值6赋值给数组中 第三个元素

3)数组定义完之后数组长度不可改变,数组长度可以使用    数组名.length    获取

//数组长度的获取
int arr[] = new int[]{1,3,5,6,8,4};    //创建一个数字
System.out.print(arr.length);          //输出数组的长度,结果为6

三、一维数组的使用

1、数组的初始化即数组长度的输出

public class Array01 {
	public static void main(String[] args) {		
		int [] arr = {1,2,5,8,1,21};
		int arr1[] = new int[]{1,5,9,5,4,8,5,4,5,5};
		int arr2[] = new int[20];
		System.out.println(arr[3]);        //输出数组arr下标为3的元素,即第四个元素
		System.out.println(arr1[2]);       //输出数组arr1下标为2的元素,即第三个元素
		System.out.println(arr2[2]);       //输出数组arr2下标为2的元素,即第三个元素
		System.out.println("数组长度:"+arr.length);       //输出数组arr的元素个数
		System.out.println("数组长度:"+arr1.length);      //输出数组arr1的元素个数
		System.out.println("数组长度:"+arr2.length);      //输出数组arr2的元素个数
    }
}
//输出结果如下
8            //数组arr第四个元素为8
9            //数组arr1第三个元素为9
0            //数组arr2由于没有初始化默认各元素初始值为0
数组长度:6         //数组arr长度为6,即元素个数为6
数组长度:10        //数组arr1长度为10
数组长度:20        //数组arr2长度为20

2、输出数组中所以奇数的和

public class Array02 {
public static void main(String[] args) {
	int sum = 0;
	int arr[]={29,23,16,3,6,7,3,10,8,12};
	for(int i = 0;i<arr.length;i++)
	{
		if(arr[i]%2==1)                //若不能被二整除则为奇数
		{
			sum += arr[i];             //满足条件的数组元素求累加和
		}
	}
	System.out.println(sum);
}
}

3、将数组中能被三整除的数输出到另一个数组

	int j = 0;
	int arr1[] = new int[10];
	int arr[]={5,27,9,15,6,42,47,10,8,12};
	for(int i = 0;i<arr.length;i++)        //循环执行直到数组中每个元素都被遍历一遍
	{
	
		if(arr[i]%3==0)                    //如果满足条件则执行{}内的语句
		{
			arr1[j] = arr[i];              //将能被三整除的数放入数组arr1中
			j++;                           //数组arr1下标+1,即移向下一个空的数组空间
		}
		
	}
	for(int k = 0;k<arr.length;k++)       
    //循环执行次数为数组arr元素个数,这里输出arr1中的元素
	{
		System.out.print(arr1[k]+",");
	}

4、判断输入的数是否在数组中

	int ans = 1;
	int arr[] = new int[]{1,9,2,11,89,22,23,33};
	Scanner scanner = new Scanner(System.in);
	System.out.println("请输入要寻找的数字:");
	int num = scanner.nextInt();
	for(int i = 0;i<arr.length;i++)
	{
		if(arr[i]==num)
		{
			System.out.println("找到了相同的数:"+arr[i]);
			break;
		}
		else if(ans<arr.length)
		{
			ans++;
			if(ans==arr.length)
			System.out.println("没有相同的数");
		}
		
	}

5、定义一个数组,求数组的最大值、最小值和平均值

int max=0,min=999,aver=0,sums=0;
	int [] arr = new int[]{8,5,9,18,65,3,4,24,84,2,4,3,99};
	for(int i = 0;i<arr.length;i++)
	{
		if(arr[i]<min)
		{
			min = arr[i];
		}
		if(arr[i]>max)
		{
			max = arr[i];
		}
		sums+=arr[i];	
	}
	aver=sums%arr.length;
	System.out.println("最大值为:"+max);
	System.out.println("最小值为"+min);
	System.out.println("平均值为"+aver);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值