蓝桥杯-数组

数组的定义

java中提供的数组是用来存储固定大小的同类型元素。

数组是多个相同类型数据按照一定顺序排列集合,并使用一个名字命名,通过编号的方式对这些数据进行统一的管理。

数组的特点

数组本身是引用类型数据,但数组中的元素可以是任何数据类型。

创建数组对象会在内存总开辟一整块连续的空间,占据空间的大小取决与数组的长度和数组中元素的类型。

数组中的元素在内存中是一次紧密排序的有序的

数组一旦初始化完成,其长度就是确定的,而数组的长度一旦确定就不能修改

可以直接通过小标的方式调用指定位置的元素-数组名中引用的是这块连续空间的首地址

数组的索引是从0开始的

数组的声明

一维数组声明

格式:

//推荐

元素的数据类型[]  一维数组名称;

不推荐  这是C++的写法

元素的数据类型 一维数组名[];

举例:

int[] arr;//java

int arr1[];//c/c++

String[] arr3;//java

二维数组声明

格式:

元素的数据类型[] [] 二维数组的名称;

//不推荐  这是C++的写法 

举例:

Int[] []arr;

int arr1[][];

package chaper2;

public class Seek {
	public static void mian(String args[]) {
		int []arr;
		int [][]arr1;
		String []str;
	}

}

数组初始化

1:静态初始化:数组变量的初始化和数组元素的赋值操作同时进行称为静态初始化,本质是用静态数据为数组初始化,此时数组的长度有静态数据的个数决定。

举例:

int[] arr=new int[]{1,23,4,3};

//或者

int []arr;

arr=new int[]{1,23,4,5};

2:动态初始化:数组变量的初始化和数组元素的赋值操作分开进行称为动态初始化。动态初始化中只确定了元素的个数,而元素值此时只是默认值,真正的数据需要后面单独一个个赋值。

注:数组长度一旦指定不可更改。

举例: int[] arr=new int[5];

遍历数组

遍历输出一维数组

1:使用for循环遍历数组中的每个索引

int []arr={21,2,5,3,7};

for(int i=0;i<arr.length;i++){//获取数组长度  数组名.length

System.out.println(arr[i]);

}

2:使用增强for循环遍历数组

int []arr={23,23,4,3,26};

for(int obj:arr){

        Sysetm.out.println(obj);

}

遍历二维数组

使用两层for循环遍历

package chaper2;

public class Seek {
	public static void main(String args[]) {
		int [][]arr= new int [5][5];
		for(int i=0;i<5;i++) {
			for(int j=0;j<5;j++) {
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}

}

java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

        给数组赋值:通过fill方法

        对数组排序,通过sort方法,升序。

实例:

Array.sort(数组名);

Arrays.fill(数组名,数值);

package chaper2;

import java.util.Arrays;

public class Seek {
	public static void main(String args[]) {
		char []a=new char[5];
		Arrays.fill(a,'s');
		for(int i=0;i<5;i++) {
			System.out.println(a[i]);
		}
		int arr[]=new int[] {2,3,1};
		Arrays.sort(arr);//升序
		for(int i=0;i<3;i++) {
				System.out.print(arr[i]);
		}
	}
}

例题实战

题目:给定一个数组,请采用如下代码定义:

int  data[200];

for(i=0;i<200;i++) data[i]=4*i+6;

先给定某个数(在data数组中)请你求出它在数组中的位置。

示例1:输入262 输出64

示例2:输入438 输出108

package chaper2;

import java.util.Scanner;

/*
 * 题目:给定一个数组,请采用如下代码定义:

int  data[200];

for(i=0;i<200;i++) data[i]=4*i+6;

先给定某个数(在data数组中)请你求出它在数组中的位置。

示例1:输入262 输出64

示例2:输入438 输出108
 */
public class Abide {
	public static void main(String args[]) {
		int []data=new int[200];
		//数组的初始化
		for(int i=0;i<200;i++) {
			data[i]=4*i+6;
		}//通过下表遍历数组中的每个元素,为每个数设置值
		Scanner scanner =new Scanner(System.in);
		//控制台
		int s=scanner.nextInt();
		//接受控制台上传来的整数型数据输入
		for(int i=0;i<200;i++) {
		
			if(data[i]==s) {
				System.out.println(i);
				break;
			}//如果找到该数字,结束循环
		
		}//通过foe循环遍历数组,寻找控制台上输入的数字在数组中的地址
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值