大数据预科班4
来源:互联网 发布:豆瓣fm for mac打不开 编辑:程序博客网 时间:2024/04/30 06:06
大数据预科班第四天
复习
- 判断语句(if、if-else、if-else-if)
- 选择结构(switch-case)
- 循环结构(while、do-while、for 如果循环体只有一句,可以省略{},do-while必须有{})
数组
- 本质:一组数的容器,数组对每一个存入的数字都会自动编号,编号从0开始–即下标
数组定义格式:数据类型[] 变量名=new 数据类型[数组大小或者元素的个数];
int[] arr=new int[3];
表示一个可以存储3个整数的数组- 数组的大小一旦定义,长度不可以改变
存储和取用
存储:arr[0]=1;
取出:int x=arr[0];格式:1、先声明,后创建 2、声明时直接创建 3、声明时直接初始化(在定义好之后,数组的初始元素已经确定大小)
- 大小确定,内容不确定时用 int[] arr=new int[数组大小];
- 内容确定时用 int[] arr=new int[]{1,2,3,4};
- int[] arr={1,2,3,4}; 正确;在创建的时候,动态获取空间大小,然后创建并放置数据。
- int[] arr; arr={1,2}; 错误;因为不知道数组大小,不给予创建;用new先创建然后放置数据。
声明:只有引用,没有空间占用
初始化:在程序中第一次给变量赋值
[]可在前在后,放在前更容易与基本类型区分
数组的应用
- 获取数组中的元素:数组名[下标]
- 获取数组的长度:数组名.length
- 遍历数组:获取数组中的每一个数据;[0~length-1]用循环:比如for
- 获取数组中的最大值(循环+比较)
- 对数组进行排序
冒泡排序:相邻两个数进行比较,一次找一个最大的或是最小的(第n轮+第n轮的比较次数=数组长度)
public static int[] getOrderArray(int[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j = 1; j <= arr.length - i; j++) {
if (arr[j - 1] > arr[j]) {
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}return arr;
}
选择排序:第n位和之后的数字相比较(选中某一位一次和其他位置比较,习惯上从0位开始依次比较)
public static int[] getOrderArray(int[] arr) {
for(int i=1;i<=arr.length;i++){
for(int j=i-1;j
内存
- 将内存分为5块:栈内存、堆内存、方法区、本地方法栈,寄存器
- 栈内存
#
存储变量,执行代码块,变量存储在栈内存中不会自动赋予初始值,变量使用完立即移除栈内存,释放空间 堆内存
#
存储对象,对象在堆内会自动赋予初始值,使用完后不会立即移除,会在一段时间后自动回收常见错误
编译没错,运行出错:语法没问题,逻辑或其他可能有错
- ArrayindexOutOfBoundsException数组下标越界
- NullPointException空指针异常,编译没有问题
扩展
- int i=1/0;//编译没错,运行出错
- 但是java中允许小数除以0,整数为无穷大,负数为负无穷大(Infinity/NaN)
- NaN:和任何数都不相等 ,和自身都不想等;只有isNaN才可以判断
- 尽量少用小数来作为控制条件,因为小数不精确
- strictfp(加在函数中):在程序执行过程中,小数是以80位二进制进行存储的,但是函数执行完用double来来存储,即用64位来进行存储
二维数组(数组的数组)
#- 定义格式:数据类型[][] 数组名=new 数组类型[二维数组的大小/二维数组中包含的一位数组的个数][所包含一维数组的大小];
eg:int[][] arr=new int[3][4];
表示一个包含3个一维数组,每一个一维数组由4个整数组成
eg:int[][] arr=new int[3][];
表示一个包含3个一维数组,每一个一维数组由长度任意;但是不能直接arr[2].length;因为这时候没有对象,应该初始化(开始为null,最后赋值为一维数组的地址)。
eg: int[][] arr={{1,1,2,3},{3,3}};
注:[]在变量前后不同;
之前会给之后的数据添加
之后的就是之后的
eg:int[] x,y[];
即x[],y[][]
- 定义格式:数据类型[][] 数组名=new 数组类型[二维数组的大小/二维数组中包含的一位数组的个数][所包含一维数组的大小];
- 遍历一个二维数组,需要两个循环
for(int i=0;i<arr.length;i++){ for(int j=0;i<arr[i].length;i++){ } }
- 大数据预科班4
- 大数据预科班3
- 大数据预科班5
- 大数据预科班6
- 大数据预科班7
- 大数据预科班8
- 大数据预科班9
- 大数据预科班串讲
- 大数据预科班10
- 大数据预科班11
- 大数据预科班12
- 大数据预科班13
- 大数据预科班14
- 大数据预科班15
- 大数据预科班16
- 大数据预科班17
- 大数据预科班18
- 大数据预科班总结
- Unity_JsonUtility_085
- css样式
- hashcode(),equals()方法分析
- 欢迎使用CSDN-markdown编辑器
- JAVA中JSP的会话跟踪(一)
- 大数据预科班4
- mysql 存储过程与事件
- Android MVP模式之(一)初识
- 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(Python实现)
- 自定义模型中,有时候新增的字段会报以下的错误:
- day07
- LintCode 1.A + B 问题
- ubuntu14.04下安装kinect2驱动及ROS接口(搬运)
- 大数据预科班5