javaSE-04数组
2021/6/28 22:22:36
本文主要是介绍javaSE-04数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数组
数组的定义
- 数组就是相同类型的若干个数据组成,有序排列的数据
- 每一个数据为一个数组元素,可以通过下标来访问它
数组声明创建
- 声明创建数组:
datatype[] ArrayRefvar;//推荐 datatype ArrayRefvar[];
- new语句创建数组:
Datatype[] ArrayRefvar = new Datatype[ArraySize];
数组初始化
静态初始化
int[] a = {1,2,3,4,5,6,7,8};
动态初始化
int[] b= new int[10]; b[0]=10;
数组边界
-
数组是相同类型的有序集合
-
数组也是对象
-
数组长度是确定的,如果越界就会报错
数组的使用
- For循环
- For-Each循环
- 数组作为方法入参
- 数组作为返回值
数组使用的示例:
public static void main(String[] args) { int[] a = {1,2,3,4,5}; //jDK1.5,没有下标 for (int i : a) { System.out.println(i); } //定义数组B = 数组a的反转 int[] b= reverse(a); PrintArray(a); PrintArray(b); } //打印数组元素 public static void PrintArray(int[] array){ for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } } //反转数组 public static int[] reverse(int[] arrays){ int[] result= new int[arrays.length]; //反转的操作 for (int i = arrays.length - 1,j=0; i >= 0; i--,j++) { result[j]=arrays[i]; } return result; }
二维数组
- 数组中的数组,数组中又包含数组
二维数组
int[][] sums=new int[5][2];
二维数组的使用
public static void main(String[] args) { int[][] array = {{1, 2}, {3, 4}, {5, 6}}; //打印二位数组 for (int i = 0; i < array.length; i++) { for (int i1 = 0; i1 < array[i].length; i1++) { System.out.println(array[i][i1]); } } }
Arrays 类
- 数组的工具类 java.util.Arrays
- Arrays类可以对数据对象进行一些基本的操作
- Arrays类方法中都是static,可以直接调用,而不用new创建对象调用
冒泡排序
- 冒泡排序,俩层循环,外层冒泡轮数,内层依次比较,江湖中人人皆知
- 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为0(n2)
冒泡排序代码
//冒泡排序 public static int[] sort(int[] array) { for (int i = 0; i < array.length; i++) { for (int i1 = 0; i1 < array.length - 1; i1++) { if (array[i1] > array[i1 + 1]) { int min = array[i1 + 1]; array[i1 + 1] = array[i1]; array[i1] = min; } } } return array; }
稀疏数组
二维数组有重复的0,为了更好的保存数组便有了稀疏数组
//创造一个稀疏数组 int[][] ints=new int[不是0的个数][3]; //ints[0][0]=二位数组的x //ints[0][1]=二位数组的y //ints[0][3]=不是0的个数 //ints[][0] 行/x //ints[][1] 列/y //ints[][2] 值
二维数组转稀疏数组:
//将二维数组转为稀疏数组 public static int[][] to(int[][] array){ //找到不是0的个数 int sum = 0; for (int i = 0; i < array.length; i++) { for (int i1 = 0; i1 < array[i].length; i1++) { if (array[i][i1] != 0) { sum++; } } } //创建一个稀疏数组 int[][] arrays1 = new int[sum + 1][3]; arrays1[0][0] = array.length; arrays1[0][1] = array[0].length; arrays1[0][2] = sum; //遍历二维数组,将非零的值,存放在稀疏数组中 int count = 0; for (int i = 0; i < array.length; i++) { for (int i1 = 0; i1 < array[i].length; i1++) { if (array[i][i1]!=0){ count++; arrays1[count][0]=i; arrays1[count][1]=i1; arrays1[count][2]=array[i][i1]; } } } return arrays1; }
稀疏数组转二维数组
//将稀疏数组转为二维数组 public static int[][] ToTwoDimensional(int[][] array){ int[][] result=new int[array[0][0]][array[0][1]]; for (int i = 1; i < array.length; i++) { result[array[i][0]][array[i][1]]=array[i][2]; } return result; }
这篇关于javaSE-04数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南