第五单元 如何使用数组
1.数组定义-创建-赋值-遍历
(1).数组声明
int score[];
int [] salary;
(2).数组创建
- 数组在使用new创建的时候才可以指定数组的大小;数组元素有默认值,规则和类型属性一致。
- 示例如下:
int[] score = new int[5];
(3).数组赋值:有数组,等号左侧一定是空的
int[] len = {2,3,45,56};
int[] ken = new int[] {0,1,2,3,5};
score[0] = 20;
for(int i = 0;i < score.length;i++) {
score[i] = i * 10;
}
(4).数组遍历
- Java中数组不可以越界取值。
- for循环示例如下:
for(int i = 0;i < score.length;i++) {
System.out.println("score[" + i + "] = " + score[i]);
}
for(int x:score) {
System.out.println(x);
}
2.引用类型数组
public class StudentArray {
public static void main(String[] args) {
Student[] stu = new Student[3];
stu[0] = new Student("zs", 19);
stu[1] = new Student("ls", 20);
Student[] tyuststu = {new Student("zs", 19),new Student("ls", 20),new Student("ww", 21)};
Student[] titstu = new Student[] {new Student("zs", 19),new Student("ls", 20),new Student("ww", 21)};
for (int i = 0; i < titstu.length; i++) {
System.out.println(titstu[i].name);
}
}
}
class Student {
String name;
int age;
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
二、准确口述
- 1.一个数组中能否存放不同类型的数据?
- 2.数组元素默认值规则?
- 3.数组能否越界取值?
- 4.一维数组在定义时能否指定长度?
- 答:定义时不能指定长度,只有创建时才可以指定长度。
5.一维简单类型数组在内存中是如何存放的?
6.一维引用类型数组在内存中是如何存放的?
- 以上两个问题等过后再解决。
- 7.二维数组第1维的大小可以不指定吗?第2维呢?
- (1)二维数组的第一维的大小必须指定,第二维可以不指定。
- (2)二位数组遍历需要使用双重for循环。
- (3)Java中的二维数组是通过一维数组叠加形成的。
- 8.冒泡排序示例(从小到大) 示例如下:
int temp = 0;
for(int i = 0;i < before.length - 1;i++) {
for(int j = 0;j < before.length - i - 1 ;j++) {
if(before[j] < before[j + 1]) {
temp = before[j];
before[j] = before[j + 1];
before[j + 1] = temp;
}
}
}
- 9.Arrays.sort():Java中自带的排序方法
- (1).Java中的自带排序方法Arrays.sort() 从小到大。
- (2).Arrays叫做数组实用类
- (3).Java中的sort用的是哪种排序方法:DualPivotQuicksort 快速排序;与一般的快速排序不同。
- 示例如下:
Arrays.sort(score);
for (int i = 0; i < score.length; i++) {
System.out.println(score[i]);
}
A方案
for(执行5次) {
for(执行3次) {
A方案
}
}
B方案
for(执行3次) {
for(执行5次) {
A方案
}
}
- 答:B方案更好,内外层切换比较费时,B方案的切换次数较少,效率更高。