前言
学习了循环的控制语句、数组的使用、内存分析、实现数据排序、数组工具类的使用
一、循环的控制语句
1.break语句:结束、退出循环
2.continue语句:忽略当前循环,继续下一个循环操作
3.return语句:结束方法,不再执行剩下的所有操作
4.label标签语句:
1.label标签是结合控制语句一起使用的
2.label语法格式: 标签名:
5.代码:
package com.day0113;
public class ForController {
public static void main(String[] args) {
1、break语句
当i==5时,则结束循环,不再输出
for (int i = 1; i <= 10; i++) {
//
if(i==5) {
break;
}
//
System.out.println(i);
}
2、continue语句
当i==5时,则跳过当前循环,再继续下一次循环【忽略当前循环所剩下的操作】
for (int i = 1; i <= 10; i++) {
//
if(i==5) {
continue;
}
//
System.out.println(i);
}
3、return语句
当i==5时,则结束方法
for (int i = 1; i <= 10; i++) {
//
if(i==5) {
return;
}
//
System.out.println(i);
}
// 标签--标记label 应用在多重循环嵌套中的流程控制 语法格式为 标识符:
// outside:
// 当k==5时,结束整个多重循环
for (int i = 1; i <= 10; i++) {
System.out.println("i="+i);
for (int k = 1; k <= 10; k++) {
if(k==5) {
continue outside;
}
System.out.println(k);
}
}
System.out.println("main方法结束了!");
}
}
二、数组的使用
1.数组的知识点掌握
1、声明数组、创建数组对象、数组的数据访问【索引-内存】
2、遍历数组【for、foreach】
3、数组的内存存储原理
2.数组的声明
int[] arr;
int arr[];
3.数组对象的创建
1.静态方式:直接给数值
arr = {1,2,3,4,5,6};
2.动态的形式
arr = new int[6];
3.多维数组的定义和创建
多维数组就是一个数组中包含多个数组
{
{1,2,3},
{4,5,6},
{7,8,9}
};
代码:
package com.day0113;
public class ArrayDemo {
public static void main(String[] args) {
// 1、如何声明数组变量[引用类型]
int[] arr;//推荐使用这种方式
int arrs[];
//2、如何创建数组对象[必须要指定数组的长度]【固定长度】
//--静态形式:
int[] arres = {1,2,3,4,5,6};
//--动态形式
int[] arres1 = new int[]{1,2,3,4,5,6};
int[] arres2 = new int[6];
//通过索引访问数组中的数据,注意是从0开始的
System.out.println(arres[2]);
//
int[][] arrays = {
{1,2,3},{4,5,6},{7,8,9}
};
// ArrayIndexOutOfBoundsException 数组的索引越界
System.out.println(arrays[1][2]);
//1、普通的for
for(int i=0;i<arres.length;i++) {
System.out.println(arres[i]);
}
//外循环遍历二维中的一维数组
for(int i=0;i<arrays.length;i++) {
//遍历一维数组中的数组
for(int k=0;k<arrays[i].length;k++) {
System.out.println(arrays[i][k]);
}
}
//2、foreach
for (int is : arres) {
System.out.println(is);
}
for (int[] is : arrays) {
for (int i : is) {
System.out.println(i);
}
}
}
}
三、内存分析
1.内存分析总结:
1、变量是在栈内存中定义的,里面存放的是数组的引用地址
2、数组是一个引用类型、数组是一个对象数据,存放在堆内存中的
3、一维数组:
【基本数据类型】:当前堆内存块中直接存放该数值
【引用类型】:当前堆内存块中存放是该引用类型的对象地址
4、多维数组:
当前堆内存块中存放是该子数组的对象引用地址
四、实现数据排序
1.冒泡排序(后续加)
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
2.选择排序(后续加)
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
五、数组工具类的使用
1.数组工具类封装了数组的一些通用操作:
1.排序(升序)
2.复制(copyof)
3.查找(二分查找法【必须要升序排序】)
4.填充(fill)
5.toString(转换为字符串)
代码:
package com.day0113;
import java.util.Arrays;
//数组工具类的使用
public class ArraysTool {
public static void main(String[] args) {
//
int[] arr = { 5, 101, 978, 43, 45, 64, 1, 65 };
int[] arr2 = { 5, 101, 978, 43, 45, 64, 1, 65 };
//是升序排序 [1, 5, 43, 45, 64, 65, 101, 978]
Arrays.sort(arr);
//toString将数组格式化为字符串
System.out.println(Arrays.toString(arr));
//二分查找法:升序排序,再进行二分之一查询
// System.out.println(Arrays.binarySearch(arr, 165));
//根据范围进行查询 二分查询
// System.out.println(Arrays.binarySearch(arr, 5, 7, 65));
//fill填充
// Arrays.fill(arr, 110);
// Arrays.fill(arr,1,5, 110);
// System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr2));
//比较数组是否相等:长度相等、顺序相等
System.out.println(Arrays.equals(arr, arr2));
//拷贝数组
int[] arr3 = Arrays.copyOf(arr, 3);
System.out.println(Arrays.toString(arr3));
//范围拷贝
int[] arr4 = Arrays.copyOfRange(arr,1,5);
System.out.println(Arrays.toString(arr4));
}
}
总结
学习了循环的控制语句、数组的使用、内存分析、实现数据排序、数组工具类的使用