数据结构(java版)之数组篇

首先关于数组的解释

先从数据类型说起:
基本数据类型:byte、short、int、long、float、double、char、boolean
引用数据类型:所有用class定义类都是引用类型
特别地,Object:如果数组的类型是Object,则所有数据类型的数据都可以存储,它是Java中所有类的父类。
(因为所有的基本数据类型,都由一个对应的封装类,封装类是Object的子类)
所以得到数组的定义为:数组是存储同一类型的数据的集合

注意

  • 数组在定义的时候要记得给指定的长度
  • 数组是一种数据结构
  • 数组在Java是类,通过数组创建的是对象。
  • 是一种线性的连续存储空间的数据结构
  • 优点:数组是所有数据结构中访问速度最快的一种,可以直接通过数组的下标进行定位获取或存储数据
  • 数组自身只有一个唯一的属性length,获取数组能存储多少数据的属性(但是有从Object父类继承过来的属性和方法,一般无用)

其他编程规则:

  • new的使用——实例化对象的时候才会使用new关键字
  • 通过数组实例化的才是对象
  • 类肯定有属性和方法

在Java中定义数组

定义一维数组

  1. 数据类型[ ] 数组名 = {值,…};
  2. 数据类型[ ] 数组名 = new 数据类型[长度];
  3. 数据类型[ ] 数组名 = new 数据类型[ ]{值,…};
  4. 数据类型[ ] 数组名;
    数组名 = new 数据类型[长度];
  5. 数据类型[ ] 数组名;
    数组名 = new 数据类型[]{值,…};

定义二维数组

  1. 数据类型[][] 数组名 = {{值,…},…};
  2. 数据类型[][] 数组名 = new 数据类型[行][列];
  3. 数据类型[][] 数组名 = new 数据类型[][]{{值,…},…};
  4. 数据类型[][] 数组名;
    数组名 = new 数据类型[行][列];
  5. 数据类型[][] 数组名;
    数组名 = new 数据类型[][]{{值,…},…};

数组的使用

一维数组

  1. 获取一维数组中能存储的元素总数:数组名.length
  2. 获取或者设置数组的某一个位置的值:数组名[下标]
  3. 数组的length是什么时候开始计数的?从1开始
    数组的下标是从什么时候开始计数的?从0开始

二维数组
1.获取二维数组有多少行:数组名.length
获取二维数组中某一行有多少列:数组名[行下标].length
2.获取二维数组中能存储的元素总数:
new 数据类型[][]{{值,…},…}:数组名[行下标].length+…+数组名[行下标].length
new 数据类型[行][列]:数组名.length*数组名[行下标].length
3.获取或者设置数组的某一个位置的值:数组名[行下标][列下标]

排序方式

下面列举几个排序
1.冒泡排序

public void sort(Student[] stu){
		for (int i = 0; i < stu.length - 1; i++) {
			for (int j = 0; j < stu.length - 1 - i; j++) {
				if (stu[j].getNumble() > stu[j + 1].getNumble()) { // 交换两数位置
					Student temp = stu[j];
					stu[j] = stu[j + 1];
					stu[j + 1] = temp;
				}
			}
		}
	}

2.快速排序
3.选择排序

public static void sort(int[] array) {
		for (int i = 0; i < array.length - 1; i++) {
			int min = i;// 假设i位置的值是最小的
			for (int j = i + 1; j < array.length; j++) {
				if (array[min] > array[j])// 如果min位置的值大于j位置的值
					min = j;// 记录最小值的位置
			}
			// 判断min是否不等于i
			if (min != i) {
				int temp = array[min];
				array[min] = array[i];
				array[i] = temp;
			}
		}
	}

4.插入排序
5.希尔算法


具体可见八大排序算法
关于数组的构造
在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值