java基础复习-06_数组
2021/6/9 1:20:50
本文主要是介绍java基础复习-06_数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数组
- 数组是相同类型数据的有序集合。
- 其中每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
- 其长度是确定的,数组一旦被创建,它的大小就是不可以改变的。
- 数组对象本身是在堆中
数组的声明和创建
- dataType [ ] array=new dataType [size]; //首选的方法
- dataType array[ ]=new dataType [size]; //不推荐
- 也可以直接赋值 int[ ] arr={1,2,3};
- 例如 int [ ] nums=new int[10]; 取值num[i]
- array.length获取数组长度
数组的使用
public class test { public static void main(String[] args) { int[] arrays = { 1, 2, 3 }; printf(arrays); System.out.println(); //增强for循环 /*for (int arr : arrays) { System.out.println(arr); }*/ //反转 printf(reserve(arrays)); } //传参 public static void printf(int[] arrays){ for(int i=0;i<arrays.length;i++) { System.out.print(arrays[i]+" "); } } //反转 public static int[] reserve(int[] arrays) { int[] result=new int[arrays.length]; for(int i=0,j=result.length-1;i<arrays.length;i++,j--) { result[j]=arrays[i]; } return result; } }
内存分析
-
堆
-
栈
-
方法区
静态初始化
-
int [ ]array=null;
-
引用类型的 有一个类叫Men Men [ ]mans={new Man(),new Man()}; **
动态初始化
- int [ ]b=new int[10 ];
- 默认初始化 值都是0
-
小结
- 下标的合法区间:【0,length-1】,如果越界就会报错,ArrayIndexOutofBounds
- 数组也是对象
- 数组是相同数据类型(数组类型可以为任意类型)的有序集合
二维数组
//定义 int a[][]=new int[2][5]; //可以看成2行5列的数组 //创建 int a[][]={{1,2},{2,3}}; //没定义的都是0 //取值 arr[0][1]=2
代码演示
public class test { public static void main(String[] args) { int a[][] = { { 1, 2 }, { 2, 3 }, { 3, 4 }, { 4, 5 } }; System.out.println(a.length);// 4 System.out.println(a[0].length);// 2 //遍历 for(int i=0;i<a.length;i++) { for(int j=0;j<a[j].length;j++) { System.out.println(a[i][j]); } } } }
Arrays类
- 数组的工具类 java.util.Arrays
import java.util.Arrays; public class test { public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 546, 876, 456, 23 }; System.out.println(a);// [I@372f7a8d // 打印数组元素 Arrays.toString() String a1 = Arrays.toString(a); System.out.println(a1);// [1, 2, 3, 4, 546, 876, 456, 23] // Arrays.toString()可以自己写个工具类和他效果差不多 printArray(a); System.out.println(); // 排序Arrays.sort(a) Arrays.sort(a); System.out.println(Arrays.toString(a));// [1, 2, 3, 4, 23, 456, 546, 876] // Arrays.fill() 填充 都是0 /* Arrays.fill(a, 0); System.out.println(Arrays.toString(a));// [0, 0, 0, 0, 0, 0, 0, 0] */ Arrays.fill(a, 2, 4, 0);//第二个到第三个赋值为0 区间[2,4) System.out.println(Arrays.toString(a));//[1, 2, 0, 0, 23, 456, 546, 876] } // 自己写的工具类 public static void printArray(int[] a) { for (int i = 0; i < a.length; i++) { if (i == 0) { System.out.print("["); } if (i == a.length - 1) { System.out.print(a[i] + "]"); } else { System.out.print(a[i] + ", "); } } } }
冒泡排序
import java.util.Arrays; public class test1 { public static void main(String[] args) { // 1.比较数组中,两个相邻的元素,如果第一个数大于第二个大,我们就交换他们的位置 // 2.每一次比较,都会产生出一个最大,或者最小的数字 // 3.下一轮可以少一次排序 // 4.依次排序,直到结束! int[] a = { 1, 4, 5, 87, 32, 456, 2, 4, 45 }; int[] sort = sort(a); System.out.println(Arrays.toString(sort)); //结果 [1, 2, 4, 4, 5, 32, 45, 87, 456] } public static int[] sort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1; j++) { if (array[j + 1] < array[j]) {//符号变'>' 结果从大到小 // 临时变量 int temp = 0; temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } return array; } }
这篇关于java基础复习-06_数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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动态权限实战入门指南