Java多条数据存储-数组

本文介绍了Java中数组的定义、存储方式、操作方法、数组遍历、常见异常及处理,包括越界和类型异常。此外,还讲解了数组拷贝的两种方式,通过Arrays和System类,并演示了如何使用sort()对整型数组进行排序。

Java多条数据存储-数组

数组(array)是一种最简单的复合数据类型,是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素.

1 数组的定义

1.int [ ] a = {1,2,3,4,21};
2.int [ ] a = new int [4];//表示数组中有四个元素!
3.int [ ] a = new int [ ]{1,2,3,4};

int [] b = new int [5];
		Random ran = new Random();
		for(int i = 0;i<b.length;i++) {
			b[i]= ran.nextInt();//数组从 int i =0开始,因为b[i]第一位是b[0]
			
		}

2 数组存储方式

数组中分配的固定的内从空间
每块空间的大小相同
使用索引(下表)访问数组中的数据
注意!!!:数组第一项是a[0],最后一项是a[a.length-1]
在这里插入图片描述
在这里插入图片描述

3 数组操作

public static void main(String[] args) {
		int [] a = {1,2,3,4,'a','\u4e01'};//数组里的数要类型相同
		/*
		 * 数组的长度
		 */
		System.out.println("长度"+a.length);
		/*
		 * 数组的起始位置0
		 */
		System.out.println(a[0]);
		/*
		 * 数组的最后一个元素
		 */
		System.out.println(a[a.length-1]);
		/*
		 * 数组越界
		 */
	    System.out.println(a[9]);
		
		
	}

运行结果
在这里插入图片描述

  • 获取数组长度: a.length
  • 获取第一个元素:a[0]
  • 访问索引为index的元素:a[index] —index 是从数组元素的位置
  • 最后一个元素: a[a.length-1]

4 数组遍历

  • 遍历定义:取出数组中的所有元素
  • 1.循环遍历
	/**
	 * 使用循环遍历
	 * @param b
	 */
	public static void bianLi01(int[] b) {
		for(int i = 0;i<b.length;i++) {//这句重点
			System.out.print(b[i]+"\t");
		}
		
	}
  • 2.For Each遍历
	/**
	 * for ... each循环增强型for循环(重点)
	 * @param c
	 */
   public static void bianLi02(int []c) {
	   for(int t:c) {//t就是新的盒子,重点注意写法
		   System.out.print(t+"\t");
	   }
   }

5 数组常见异常

5.1 越界异常

访问数组的界限在a[0]~a[a.length-1]之间

5.2 类型异常

数组每个元素类型必须一致
在这里插入图片描述

6 数组拷贝方式

6.1 Arrays

int[] a = {1,2,3,4,5};
int[] b = Arrays.copyOf(a, 7);//7代表新数组b的长度!!
System.out.println(Arrays.toString(b));

【运行结果】
[1, 2, 3, 4, 5, 0, 0]

6.2 System

int[] src = {1,2,3,4,5};
int[] dest = new int[5];
System.arraycopy(src, 2, dest, 0, 3);
System.out.println(Arrays.toString(dest));

【运行结果】
[3, 4, 5, 0, 0]

上面的代码中System.arraycopy(src, 2, dest, 0, 3);这句的解释如下
在这里插入图片描述

7.把数组内的int按大小排序sort()

sort()是Java中的排序方法,不光可以对数组进行排序,基本数据类型的数组都可以排序,甚至可以实现对对象数组的排序
基本数据类型
最常用:对数字类型:

  int[] a = {1, 3, 4, 67, 78, 9, 90, 6, 3, 2};
    Arrays.sort(a);//对数组进行排序
    System.out.println(Arrays.toString(a));//遍历并输出整个数组
    //从小到大排序,浮点类型与整形同理
Java 中,可以通过多种方式将多条信息输入到数组中,并进行遍历。下面是一个完整的示例程序:使用 `Scanner` 从控制台读取用户输入的多个整数,存入数组,然后遍历输出。 ### 示例:从控制台输入多个整数并存储到数组中,然后遍历 ```java import java.util.Scanner; public class InputToArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 第一步:获取数组长度 System.out.print("请输入要输入的整数个数: "); int n = scanner.nextInt(); // 创建数组 int[] numbers = new int[n]; // 第二步:循环输入数据到数组 System.out.println("请输入 " + n + " 个整数:"); for (int i = 0; i < n; i++) { numbers[i] = scanner.nextInt(); } // 第三步:遍历数组并输出 System.out.println("您输入的数组内容为:"); for (int i = 0; i < numbers.length; i++) { System.out.println("numbers[" + i + "] = " + numbers[i]); } // 可选:使用增强for循环(for-each)遍历 System.out.println("使用增强for循环遍历:"); for (int num : numbers) { System.out.println(num); } // 关闭scanner(良好习惯) scanner.close(); } } ``` --- ### 代码解释: 1. **导入 Scanner 类**: ```java import java.util.Scanner; ``` 用于从标准输入(键盘)读取用户输入。 2. **获取数组长度 `n`**: 使用 `scanner.nextInt()` 获取用户指定的数组大小。 3. **创建数组**: ```java int[] numbers = new int[n]; ``` 动态创建一个长度为 `n` 的整型数组。 4. **循环输入数据**: 使用 `for` 循环配合 `scanner.nextInt()` 将每个输入的存入数组对应位置。 5. **遍历输出数组**: - 使用普通 `for` 循环可以访问索引和元素。 - 使用 **增强for循环(for-each)** 更简洁,但无法获取索引。 6. **关闭 Scanner**: 虽然在小程序中不是必须的,但养成资源释放的习惯很重要。 --- ### 运行示例: ``` 请输入要输入的整数个数: 5 请输入 5 个整数: 10 20 30 40 50 您输入的数组内容为: numbers[0] = 10 numbers[1] = 20 numbers[2] = 30 numbers[3] = 40 numbers[4] = 50 使用增强for循环遍历: 10 20 30 40 50 ``` --- ### 扩展建议: - 如果输入的是字符串,可以使用 `scanner.next()` 或 `scanner.nextLine()`。 - 若不确定输入数量,可使用 `ArrayList` 替代固定数组---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值