Java基础知识总结04-数组及数组的常见操作
数组
概述:数组是一种引用类型。变量只能存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型数据,也可以存放引用类型数据。
初始化:就是在内存当中开辟数组空间,并且赋予一些默认值。
数组初始化的方式有两种:
1.动态初始化:指定数组长度
2.静态初始化:指定数组内容
动态初始化:直接指定数组长度,也就是数组当中到底可以存放多少个数据。
第一种格式(一个步骤):
// 数据类型[] 数组名称 = new 数据类型[数组长度]; int[] array = new int[5];
解析:
①左侧的数据类型:也就是数组当中存放的元素全都是统一的什么类型。
②左侧的[] :代表这是一种数组类型
③数组名称:就是一个自定义的标识符,通过名称可以使用数组当中的数据。
④右侧的new:代表创建动作,在内存当中开辟空间,创建数组。
⑤右侧的数据类型:一定要和左侧的数据类型一样。
⑥右侧[]当中的数组长度:数组当中能存放的元素个数。
第二种格式(两个步骤):
// 数据类型[] 数组名称; // 数组名称 = new 数据类型[数组长度]; int[] array; array = new int[5];
静态初始化:直接指定具体元素内容
标准格式
// 数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...}; int[] array = new int[]{1,2,3,4,5};
简便写法
// 数据类型[] 数组名称 = {元素1,元素2,元素3...}; int[] array = {1,2,3,4,5};
注:
①标准格式也可以拆分为两个步骤。
②一旦使用简便格式,必须一个步骤完成初始化,不能拆分为两个步骤。
如下写法错误
int[] array; array = {1,2,3,4,5};// 错误写法
静态初始化总结:
①虽然静态初始化没有指定长度,但是仍然可以根据具体元素的个数推算出长度。
②虽然简便格式当中可以不写new…,但是仍然有内存当中开辟空间的过程。
③虽然直接指定了具体元素内容,但是仍然会有默认值被替换的过程。
获取数组长度的方法:
数组名称.length
注:一个数组一旦在内存中被创建,那么数组的长度就不能发生改变。
索引(角标):
从0开始,一直到“长度-1”为止
如果访问的数组元素不存在,那么将会发生“数组索引越界异常”
java.lang.ArrayIndexOutOfBoundsException
只要出现这种异常,一定是访问的数组元素并不存在。
数组的常见操作
数组遍历(依次访问数组中的每个元素):
【代码】
public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 };// 定义数组 for (int i = 0; i < array.length; i++) { System.out.print(array[i] + "\t");// 通过索引访问元素 } }
数组最值(获取数组中的最值):
【代码】
int[] array = { 1, 2, 3, 4, 5 };// 定义数组 int max = array[0];// 定义max记住最大值,首先假设第一个元素为最大值 // for循环遍历数组中的元素 for (int i = 1; i < array.length; i++) { if (array[i] > max) {// 比较array[i]是否大于max max = array[i];// 条件成立,将array[i]赋值给max } } System.out.println(max);// 输出最大值max = 5
数组排序(对数组中的元素进行排序):
1.冒泡排序
【代码】
int[] array = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };// 定义数组 for (int i = 1; i < array.length; i++) {// 排序轮数 for (int j = 0; j < array.length - i; j++) {// 排序次数 // array[j] < array[j + 1] 将较小数放最后(降序) if (array[j] > array[j + 1]) {// 将较大数放最后(升序) int temp = array[j];// 用临时变量交换两个数的位置 array[j] = array[j + 1]; array[j + 1] = temp; } } } System.out.println("冒泡排序后:"); for (int tmp : array) { System.out.print(tmp + "\t"); } //输出结果为:冒泡排序后:1 2 3 4 5 6 7 8 9 10
2.选择排序
【代码】
int[] array = { 1, 0, 3, 5, 7, 9, 2, 4, 6, 8, 10 };// 定义数组 for (int i = 0; i < array.length - 1; i++) { int min = i; // 保存最小元素下标 for (int j = min + 1; j < array.length; j++) { if (array[min] > array[j]) { min = j; } } if (min != i) { // 把最小元素交换到i位置 int t = array[i]; array[i] = array[min]; array[min] = t; } } System.out.println("选择排序结果:"); for (int tmp : array) { System.out.print(tmp + "\t"); }
- java基础05数组中的常见操作函数
- java基础知识总结2三种常见的结构
- Java基础知识之数组操作
- 关于Java基础的复习总结(三)数组基础知识
- 黑马程序员--Java基础加强--04.代码简化 书写规律III_数组参数【重载】【数组】【可变参数数组】【泛型可变参数数组】【个人总结】
- 1.21 Java基础总结 数组知识
- JAVA_SE基础——20.数组的常见操作
- 【JavaWeb】基础知识总结04 JS基础
- 黑马程序员——Java基础---- 数组(静态初始化_常见问题)(04)
- Java 语言基础之数组常见操作
- Java基础知识总结(数组)
- Java基础知识强化之集合框架笔记74:各种集合常见功能 和 遍历方式总结
- 黑马程序员--02.Java语言基础--04.【数组中常见的算法】
- Java基础视频教程第04天_学习笔记之数组常见操作
- java基础之数组常用操作总结(必看篇)
- 04.java语言基础-数组中的数组(多维数组)-多维数组的操作
- java基础知识总结(4)(Random、数组)
- Java基础知识强化105:打印数组的方法总结
- 黑马程序员 Java基础知识总结-数组
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组