Java---老要遍历的数组

这篇文章主要是展示数组的使用,一维数组和二维数组的遍历,作为一个正在入门的新手,有不足的地方还希望能够指出。

数组

  • 基本要素
    标识符:数组的名称,用于区分不同的数组。
    数组元素:向数组中存放的数据。
    元素下标:对元素进行编号,从0开始,数组中的每个元素都 可以通过元素下标来访问。
    元素类型:数组元素的数据类型。

  • 数组长度固定不变,避免数组越界。

    一维数组

  • 定义
    数组是一个变量,存储相同数据类型的一组数据。

  • 使用数组四步走

  1. 声明数组----------int [ ]a;
  2. 分配空间----------a=new int[5];
  3. 赋值----------------a[0]=8;
  4. 处理数据----------a[0]=a[0]*10-----a[0]=80;
  • 动态赋值:数据类型[ ]数组名=new 数据类型[大小];

  • 赋值方法

  1. 边声明边赋值
    数据类型[ ]数组名=new 数据类型[ ]{元素1,元素2,元素3};
    或:数据类型[ ]数组名={元素1,元素2,元素3};
int [] arr = new int [] {79 , 89 , 99};
  1. 动态地从键盘录入信息并赋值
Scanner input = new Scanner(System.in);
for(int i = 0;i < 30;i++){
	score[i]=input.nextInt();
}
  • 给一维数组排序
    使用Java.util.Arrays类
    java.util包提供了许多工具类
    Arrays类提供操作数据的方法

    如排序,查询

    Arrays类的sort()方法:对数组进行升序排列

    使用方法:Arrays.sort(数组名);

  • clone.复制数组
    数据类型[ ]新数组名=(数据类型[ ])原数组名.clone();

int[ ]newRand = (int [ ])rand.clone();

将object类型强转为int[ ]类型,调用clone方法。

  • 逆序:将数组从后往前进行排列
    即:
new[0] = old[old.length-1];
new[1] = old[old.length-2];
new[2] = old[old.length-3];
... ...
new[old.length-1] = old[0];
实现数组的逆序
int[]scores = new int[]{22,33,44,55,66};
int[]newScores = new int[5];
//依次将后面的值赋给前面的
for(int i = 0;i < newScores.length;i++){
	newScores[i] = scores[score.length-i-1];
}
//遍历数组
for(int i = 0;i < newScores.length;i++){
	System.out.print(newScores[i] + "\t");
}

练习:猜数字游戏,判断输入的数字是否在随机数组中

public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		
				
		//定义一个有五个内容的数组
		int[]rand=new int[5];
		
		//随机产生五个数在数组中
		for(int i = 0;i<rand.length;i++){
			rand[i]=(int)(Math.random()*100);
		}
		//可以选择先输出已经随机产生的数组,完成作弊;-)
		/*for (int i = 0; i < rand.length; i++){
			System.out.print(rand[i]+"\t");
		}*/
		
		System.out.println("请输入一个猜的数:");
		int a=input.nextInt();
		
		boolean doing=true;
		for(int i = 0;i<rand.length;i++){
			if (a==rand[i]){
				System.out.println("\n"+a+"存在于这个数组");
				doing=false;		
			}					
		}if(doing){
			System.out.println("\n"+a+"不存在于这个数组");			
		}
		for (int i = 0; i < rand.length; i++){
			System.out.print(rand[i]+"\t");
		}				
	}
}

一维数组的典型应用:实现数组的排序、求数组的最大/最小值、向数组中插入元素。

二维数组

  • 定义
    元素为一维数组的数组。
  1. 定义格式
    A.数据类型[ ] [ ]数组名;(推荐使用)
    B.数据类型[ ]数组名[ ];
    C.数据类型 数组名[ ] [ ];

  2. 初始化
    A.动态初始化
    数据类型[ ] [ ]数组名=new 数据类型[m] [n];
    m表示二维数组中的一维数组个数
    n表示一维数组中的元素个数

    B.静态初始化
    数据类型[ ] [ ]数组名=new 数据类型[ ] [ ]{{元素1,元素2…},{元素1,元素2…},{…},…};
    简化格式:数据类型[ ] [ ]数组名={{元素1,元素2…},{元素1,元素2…},{…},…};

  3. 遍历二维数组中的数据

需要使用双重循环,遍历其中每个一维数组

public static void main(String[] args) {
		int[][]arr={{1,2,3,4},{4,5,6},{7,8,9}};
		
		for(int i = 0;i < arr.length;i++){
			System.out.print("第"+(i+1)+"个一维数组:");
			
			for(int j = 0;j < arr[i].length;j++){				
				System.out.print(arr[i][j]+"  ");
			}
			System.out.println();
		}
	}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值