数组篇
1. 理解数组的作用
数组:数据的组合,它是一组相同数据类型的组合(缺点:只能存储相同数据类型,长度不可变)
2. 掌握数组的定义
数组元素的数据类型:有数值类型,和非数值类型的
数值类型byte short int long double
非数值类型 char boolean String
数组名(标识符)
和变量名规范一致
数组的元素
数组中存储的一个个变量
数组的下标(索引)
数组是有序的,每一个元素都有一个固定的数组下标
下标是从0开始的
package com; // 包声明
public class X1 { // 类声明
public static void main(String[] args) { // main方法 程序的入口点
// 1.声明变量
double[] scores;
// 2.给数组分配空间 指定数组的长度 /元素的个数(变量的话第二步直接开始赋值)
scores = new double[5];
// 3.给数组赋值
scores[1] = 39;
scores[2] = 99;
// 控制台输出信息
System.out.println("第三位同学的成绩为:" + scores[2]);
}
}
3.掌握数组的基本操作
声明 —> double[] scores;
分配空间 ----> scores = new double[5];
赋值—> scores[0] = 12;
声明并配空间—>赋值
String[] names = new String[3];
names[0] == “xx”;
声明并直接赋值
char[] alpha ={“a”,“b”,“c”}; // 不能分成两条语句定义
boolean[] flag = new boolean[]{true,false};
3.1数组的注意事项
1.数组只能存储相同数据类型的数据
2.数组的长度一经指定无法改变
3.数组的元素有默认值
4.不同类型的数组元素有不同的默认值
byte short int long默认值是0
float double 默认值是0.0
boolean默认值是false
char 默认值是:\u000 空格
String(引用数据类型)默认值:null 表示空,表示没有引用地址
掌握数组的常用操作
数组的遍历:将某个内容的所有值元素全部取出来的过程
遍历方式:将循环变量i作为数组的下标值,通过此值来获取对应的元素
for(int i = 0; i < 数组的长度; i++ ){
数组名[i]
}
遍历方式2:增强for循环(foreach) 将数组中的每一个元素值都存储到临时变量中来使用
for(数组元素类型 数组元素名:要遍历的数组名){
// 数组元素名
}
for(doubole score : scores){
scores
}
5.引用数据类型
关于内存分配上的一个基本区别
Java的程序在运行的时候,数据是按照不同的场景进行不同区域的存储的。
Java栈(stack)一般用于存放基本数据类型值
Java堆(heap)一般用于存放引用数据类型值
6.Arrays数组工具类
- 掌握Arrays数组工具类常用操作
- Java.util包
API(APPlication Program Interface)应用程序接口
常用API
a. 比较两个数组的元素是否完全一致:boolean equals(数组1,数组2);
b. 将数组的所有元素转换为字符串:String toString(数组);
c. 将数组的元素进行升序排序:void sort(数组);
d. 将数组的元素全部填充为某个值:void fill(数组,填充的值);
e. 将数组的元素赋值到一个指定长度的新数组中:对应的数组类型 copyOF(老数组,指定长度);
f. 二分查找,查找指定元素在数组中的索引/下标(数组必须进行升序排序)int binarySearch(数组,查找的值);
g. (了解)List asList(T……x);可以将指定元素封装成集合。
4. 掌握冒泡排序的使用(难点。重点)
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
原理:相邻元素做比较 两两比较小考前
代码口诀:外层循环n-1 内层循环n-1-i (n代表元素个数)
二维数组的原理
package com; // 包声明
public class X2 { // 类声明
public static void main(String[] args) { // main方法 程序的入口点
// 最常规的写法 声明数组 并分配空间
// 一层数组长度(外层)长度为3 二维数组(内层)长度为2 缺陷是必须等分
int[][] arr = new int[3][2];
// 二维长度不固定
int[][] arr1 = new int[3][];
arr1[0] = new int[2];
arr1[1] = new int[3];
arr1[2] = new int[1];
// 直接赋值的定义方式
int[][] arr2 = new int[][] {{1,2},{3,4,5}};
int[][] arr3 = {{1,2},{3,4,5}};
}
}