JAVA基础Day05

本文详细介绍了Java中while和for循环的适用场景,以及数组的定义、内存结构和应用。重点讲解了数组的初始化、遍历、排序、查找和翻转操作,并探讨了数组在内存中的布局和默认值。此外,还提到了Java中的基本排序算法,如冒泡排序和选择排序。
摘要由CSDN通过智能技术生成

复习

  1. 在实际开发中,如果处理没有规律或者每次次数限制的场景,一般使用的是while;如果处理有明显规律或者次数限制的场景,一般使用的是for
  2. *组成的三角形

*

**

***

****

*****

  1. break和continue
    1. break表示中止本层循环
    1. continue表示跳过本次循环,继续下次循环
    1. break和continue允许对代码进行标号

数组

一、简介

  1. 数组本质上是一个可以存储多个数据的容器。数组中的数据称之为元素,数组中元素个数称之为数组的长度
  2. 在定义数组的时候,就需要给定数组的长度。长度给定之后不可变
  3. 在数组中,将数组中每一个位置给定一个编号,编号称之为下标。下表从0开始
  4. 数组的格式

格式一:

数据类型[] 数组名 = new 数据类型[长度];

例如

int[] arr = new int[5]; // 定义一个能够存储5个整型元素的数组arr

arr[2] = 10;// 将元素10放到数组下标为2的位置上

格式二:

数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3...};

例如

int[] arr = new int[]{2, 5, 9, 1, 6, 7, 5}; // 定义了一个数组arr用于存储整型元素,同时给定了数组中每一个下标上的具体元素 - 这种方式同时还定义了数组的长度

格式三

数据类型[] 数组名 = {元素1, 元素2, 元素3...};

例如

int[] arr = {2, 5, 9, 1, 6, 7, 5};

二、数组的内存结构

  1. 程序要想运行,必然会占用计算机的内存
  2. Java在运行过程中,将计算机内存进行了逻辑划分,通用划分是将内存分为了5块:栈内存(Stack),堆内存(Heap),方法区(Method Area),本地方法栈(Native Stack),PC计数器(Program Counter)
  3. 堆内存会对放入其中的元素来自动赋予一个默认值:byte/short/int的默认值都是0,long的默认值是0L,float的默认值是0.0f,double的默认值是0.0,char的默认值是'\u0000',boolean的默认值是false,其他类型的默认值是null
  4. 数组的内存结构

三、数组的应用

  1. 获取数组元素 - 数组名[下标]
  2. 获取数组的长度 - 数组名.length - 数组的最大下标是长度-1
  3. 数据的遍历 - 如果需要遍历一个数组,只需要依次获取每一个下标

// 数组是arr

for(int i = 0; i < arr.length  ; i++){

System.out.println(arr[i]);

}

  1. 获取数组元素中的最值 (最大值/最小值) - 遍历数组,从这个数组中一个个的比较来获取的最大/小值
  2. 数组元素排序
    1. 冒泡排序:相邻的两个元素比较,根据规则来决定是否交换两个元素。经过多轮比较将元素变成有序状态 - 时间复杂度是O(n2),空间复杂度是O(1),冒泡排序本身是一种稳定的排序算法
    2. 选择排序:选定位置之后,将这个位置上的元素和其他元素依次比较。经过多轮比较之后将元素变成有序状态 - 时间复杂度是O(n2),空间复杂度是O(1),选择排序本身是一种不稳定的排序算法
    3. Java中提供了排序方式:Arrays.sort(数组) - 底层依靠了快速排序来实现的,时间复杂度是O(nlogn)
  3. 从数组中来获取某一个元素出现的位置
    1. 如果数组元素无序,那么获取某一个元素出现的下标,只能进行遍历
    2. 如果数组元素有序,那么采用二分(折半)查找
  4. 数组翻转
  5. 数组复制 - 将一个数组中的指定部分的元素复制到另一个数组中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值