数组的说明以及应用

本文详细介绍了数组的基础知识,包括数组的概念、特性、堆栈存储方式及实际应用。讨论了数组的声明、排序方法,如冒泡排序,并提到了Java中Arrays类在数组操作中的作用,如排序和查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章提供对于数组的简单说明以及概念与数组的基本使用方法

一、数组的基本概念

1.1、数组的地位
数组无论在那种编程语言都是最重要的数据结构之一,同时不同语言的实现以及处理方式也不尽相同,但做程序的人都知道数组的实用性以及数组的价值和数组的重要性。

1.2 、什么是数组?
①.所谓数组,就是相同类型数据有序集合
②.数组的使用,数组描叙的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每个数据称作数组元素(item),每个数组元素可以通过一个下标来访问它们

1.3、数组的特性
①.数组的长度确定,数组一旦被创建,未来的长度不能发生改变,数组是不可变的
②.数组的元素类型相同!
③数组是有序的,每个数组元素可以通过一个下标来访问,下标从0开始。
④数组是引用类型

1.4、数组在堆栈的储存方式
在这里插入图片描述

一,在栈区声明了一个变量score,数组是引用数据类型所以score 在栈区里面只是声明了一个变量并没有赋值
二,new int[];代表在堆区申请了一个空间,同时产生一个内存地址,同时把这个内存地址赋值给score
三,scroe通过被内存地址找到堆中的相对应地址的空间
在这里插入图片描述
二,数组的使用与实际应用

2.1、声明数组方式
①数据类型【】 数组名称 = new 数组类型 { 内容… };

在这里插入图片描述

②数组类型【】 数组名称 = new 【数组长度】;

在这里插入图片描述

③数组类型【】数组名称 = new 数组类型【】{ 内容…}

在这里插入图片描述
2.2、实现对数组进行排序

①冒泡排序法的原理跟运行方式在这里插入图片描述
冒泡排序算法的原理如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。



**public class Test02 {
	public static void main(String[] args) {
			int [] a = {2,4,8,9,6,7,5,1,3};
			int tmp;
			for(int i=0;i<a.length;i++) {
				for (int j = 0; j < a.length-1; j++) {
					if (a[j]>a[j+1]) {
						tmp = a[j];
						a[j] = a[j+1];
						a[j+1] = tmp;
					}
				}
				System.out.print(a[i]+"\t");
			}
			System.out.println();
			
			for(int i = 0;i<a.length;i++ ) {
				System.out.print(a[i]+"\t");
		}
	}
}**


②如何实现在控制台输入10个字符进行排序以及(二分法)倒序输出


import java.util.Scanner;

import javax.sql.rowset.FilteredRowSet;

public class Test01 {

	private static Scanner sc;

	public static void main(String[] args) {

		sc = new Scanner(System.in);
		
		char[] a = new char[10]; 	//声明数组
		String str;						
		
		for (int i = 0; i < a.length; i++) {           
			System.out.println("请输入第" + i + "个字符");   
			str = sc.next();
			a[i] = str.charAt(0);		
		}
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
		}
		char tmp;
		for (int i = 0; i < a.length - 1; i++) {
			for (int j = 0; j < a.length - 1 - i; j++) {
				if (a[j] > a[j + 1]) {
					tmp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = tmp;
				}

			}

		}
		System.out.println();

		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
		}
		System.out.print("使用二分法实现倒序输出");
		tmp = '\u0000';
		
		for (int i = 0; i < a.length / 2; i++) {
			tmp = a[i];
			a[i] = a[a.length - 1 - i];
			a[a.length - 1 - i] = tmp;
		}
		System.out.println();
		for (int i = 0; i < a.length; i++) {  
			System.out.print(a[i] + "\t");
		}
	}
}

三、Arrays类

3.1、除了以上方法以外jdk还提供了java.util.Arrays类包含了常用的数组操作,为了日常开发提供了方便。 Arraysl类包含了对数组的(排列,查找,填充,打印内容)等,常见的操作

①使用Arrays类对数组元素进行排序


import java.util.Arrays;
import java.util.Scanner;

import javax.sql.rowset.FilteredRowSet;

public class Test01 {

	private static Scanner sc;

	public static void main(String[] args) {

		int[] a = { 1, 2, 9, 7, 5, 6, 4, 8, 3 };
		System.out.println(Arrays.toString(a));
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));
	}
}

②使用Arrays类实现二分查找法

public class Test01 {
	public static void main(String[] args) {
		
			int [] a ={1,2,9,7,5,6,4,8,3}; 
				System.out.println(Arrays.toString(a)); 
				//使用二分法查找,必须先对数组进行排序 
				Arrays.sort(a);						
				System.out.println(Arrays.toString(a));
				//返回排序后新的索引位置,若是没有找到返回负数
				  System.out.println("该元素的索引:"+Arrays.binarySearch(a,8)); 
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值