8.11Java之数组知识回顾
2021/8/11 20:06:40
本文主要是介绍8.11Java之数组知识回顾,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
8.11Java之数组知识回顾
数组
-
一维数组的定义与使用方式
-
数组基本练习
-
Arrays
工具类 -
案例---点名器
-
二维数组
数组定义
相同类型数据的有序集合
-
一开始大小固定--->开始初始化
-
数组本身属于引用类型--->初始化需要new一个对象并且开辟空间
-
数组中可以存储任意类型的数据
创建数组时的内存分配说明
数组的使用
通过索引去使用数组:
数组的遍历方式
普通for循环:
增强for循环:--->因为数组本身是一个对象
普通for循环打印数组内容
/** * 普通for循环方法 */ public static void forArray(){ int[] number = {1,2,3,4,5}; for (int i=0; i<number.length; i++){ System.out.println(number[i]); } }
增强for循环打印数组内容
/** * 增强for循环打印数组内容 */ public static void forEachArray(){ int[] number = {5,4,3,2,1}; for (int num : number){ System.out.println(num); } }
这两种打印方法在本质上是有区别的主要区别在内存上:
普通for循环:
-
打印的number[i]中这个"i"是一个引用
增强for循环:
-
将堆内存的数组中的值取出,放入到变量num当中,再去打印出。不便于引用
数组的关键理解
/** * 数组赋值的方法 */ public static void changeArray(){ //int[] number = {}; /* 上面这个写法实际上在堆内存当中并没有开辟对象空间 所以之前直接循环是无法对数组进行赋值 基本数据类型的数组无法使用动态分配的方式进行赋值 因为基本数据类型不需要new一个对象去创建。即便使用包装类那么返回的也是一个基本数据类型的值 而该值不需要创建对象 */ int[] number = new int[10]; for (int i=0; i<10; i++){ number[i] = 10*(i-1); System.out.println(number[i]); } } /** * 动态分配空间赋值 */ public static void changeArrays(){ int[] number = {}; for (int i=0; i<number.length; i++){ number[i] = new Integer(10*(i-1)); System.out.println(number[i]); } /* 可以通过编译,但是没有结果 */ }
数组练习
/** * 遍历char数组,倒序输出数组内容 * @param arr */ public static void print(char[] arr){ for (int i=arr.length-1; i>=0; i--){ System.out.println(arr[i]); } }
/** * 遍历int数组,获取最大值和最小值 * @param arr */ public static void printMaxMin(int[] arr){ int max = arr[0]; int min = arr[arr.length-1]; for (int i=0; i<arr.length; i++){ if (arr.length==1){ System.out.println(arr[i]); }else { if (arr[i]>max){ max = arr[i]; }else if (arr[i]<min){ min = arr[i]; } } } /* 抓头尾设为变量,然后用数据进行比较 因为是比较大小所以需要比较必须有比较的对象 */ System.out.println(max); System.out.println(min); }
/** * 实现一个随机的点名器 * 使用循环去读取多对象--->设置索引为随机的 * @param arr */ public static void randomPrintName(String[] arr){ int randomnumber = (int) (Math.random()*arr.length); System.out.println(arr[randomnumber]); }
多维数组
本章以二维数组进行举例
二维数组的定义:
数组中套数组
定义二位数组
实例:
static int[][] doubleArray = {{1,2},{2,3},{3,4}}; //如果使用的是直接定义长度的话 //不同维度的数组可以定义不同的空间长度
打印二维数组内的内容
实例:
public static void print(int[][] arr){ for (int[] num : arr){ for (int number : num){ System.out.println(number); } System.out.println(num); } }
num为引用,打印出来的是一个hash地址
number为内容的引用,打印出来的是具体值
二维数组的内存分析举例
注意:
-
无论几维数组,都是引用类型
-
其对象分配的空间都在堆中
给二维数组定义长度
static int[][] doubleArrays = new int[5][]; //这里就没有定义二维数组的长度 public static void createSpace(int[][] arr){ arr[0] = new int[2]; arr[0][1] = 1; System.out.println(arr[0][1]); /* 因为要给二维数组的内部再进行长度定义,那么需要找到一位数组的索引 然后再通过新建对象的方法给该索引下的空间进行长度定义 */ }
这篇关于8.11Java之数组知识回顾的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27本地多文件上传的简单教程
- 2024-11-27低代码开发:初学者的简单教程
- 2024-11-27如何轻松掌握拖动排序功能
- 2024-11-27JWT入门教程:从零开始理解与实现
- 2024-11-27安能物流 All in TiDB 背后的故事与成果
- 2024-11-27低代码开发入门教程:轻松上手指南
- 2024-11-27如何轻松入门低代码应用开发
- 2024-11-27ESLint开发入门教程:从零开始使用ESLint
- 2024-11-27Npm 发布和配置入门指南
- 2024-11-27低代码应用课程:新手入门指南