@MRsunhuimin
2019-07-22T11:02:55.000000Z
字数 1406
阅读 208
java基础
数组是一个变量,存储相同数据类型的一组数据
1. 标识符
2. 数组元素
3. 元素下标:从0开始
4. 元素类型
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间
1. 数组中的所有元素必须属于相同的数据类型
2. 数组长度固定不变,避免数组越界
1.声明数组(声明数组时不规定数组长度)
1.1 数据类型 数组名[ ] ;
1.2 数据类型[ ] 数组名 ;
2.分配空间(数组元素根据类型不同,有不同的初始值)
数据类型[ ] 数组名 = new 数据类型[大小] ;
3.赋值
3.1 方法1: 边声明边赋值
int[ ] scores = new int[ ]{89, 79, 76};(不能指定数组长度)
3.2 方法2:动态地从键盘录入信息并赋值
4.处理数据
在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间。当超过变量的作用范围之后,这里的变量会马上回收,所占用空间将另作他用,本次课之前所讲的变量都是在栈内存分配空间的
冒泡排序:N个数;
1.两层循环,外层循环N-1遍,控制循环的趟数,(n-1)是因为最后一趟不用比;
2.内层,相邻两数比较,大的往后走;每走完一趟,比较次数少一次;
3.循环结束,数组有序(升序);
代码:
public static void main(String[] args) {
for (int i = 0;i<test.length;i++){
for(int j = 0;j<test.length-i-1;i++){
if(test[j] > test[j+1]){
int temp = test[j];
test[j] = test[j+1];
test[j+1] = temp;
}
}
}
}
升序排序:
1. 每次比较相邻两数
2. 小的交换到前面
3. 每轮结束后最大的数交换到最后
用二重循环将5个数字升序排序:
1. 5个数字如何存放
数组,数组.length = 5
2. 控制比较多少轮
外层循环,循环变量 i
3. 控制每轮比较多少次
内层循环,循环变量 j
4. 交换数据
冒泡排序速记口诀(升序)
N 个数字来排队
两两相比小靠前
外层循环 N-1
内层循环 N-1-I
使用java.util.Arrays类
java.util包提供的工具类
Arrays类提供操作数组的方法,如:排序、查询
Arrays类的sort()方法: 对数组进行升序排列
Arrays.sort(数组名);
<数据类型> [ ][ ] 数组名; 或者 <数据类型> 数组名 [ ][ ];
int [ ][ ] scores; //定义二维数组
scores=new int[5][50]; //分配内存空间
//或者
int [ ][ ] scores = new int[5][50];
定义二维数组时,要定义最大维数
int [ ][ ] scores = new int[5][]; √
int [ ][ ] scores = new int[][]; ×
二维数组实际上是一个以一维数组做为元素的一维数组
定义并赋值:
写法一
int[][] scores=new int[][]{ { 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 }};
写法二
int scores[][] = {{ 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 } };