Java学习笔记第3天——循环的控制语句、数组的使用、内存分析、实现数据排序、数组工具类的使用

前言

学习了循环的控制语句、数组的使用、内存分析、实现数据排序、数组工具类的使用


一、循环的控制语句

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));
		
	}

}


总结

学习了循环的控制语句、数组的使用、内存分析、实现数据排序、数组工具类的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值