float[] f = new float[3];
f[0]=12.5f;
f[1]=23.3f;
f[2]=0.25f;
e.g.
public class Demo1 {
public static void main(String[] args) {
int[] x = new int[50];
for(int i=0;i
4、for-each循环
主要用于数组或集合的遍历。
e.g.
public class Demo1 {
public static void main(String[] args) {
int[] x = {2,9,6,12,25};
// 输出数组中的元素
for(int k : x){
System.out.print(k+", ");
}
}
}
5、冒泡法排序
PS:交换两个元素的值
(1) 借助于中间变量
int x=8;
int y=5;
int t=x; // t-->8
x=y; // x-->5
y=t; // y-->8
(2)不借助中间变量
int x=8;
int y=5;
x = x+y; // x-->13
y = x-y; // y-->8
x = x-y; // x-->5
e.g.
/**
* {45,30,15,2} 元素个数 n--> 4
* 冒泡法排序(大数在后):
* 第1趟: 30,15,2,45 -->比较3次
* 第2趟: 15,2,30,. -->比较2次
* 第3趟: 2,15,... -->比较1次
*
* 对于数组长度为n的数组,需要n-1趟;
* 对于第m趟需要比较n-m次
*/
public class Demo1 {
public static void main(String[] args) {
int[] x = {45,20,5,39,55,18,15,2,15,30};
for(int m=0;mx[k+1]){
int t = x[k];
x[k] = x[k+1];
x[k+1] = t;
}
}
}
// 输出数组中的元素
for(int a : x){
System.out.print(a+", ");
}
}
}
3.2 二维数组
1、数组的声明
dataType[][] arrName;
dataType arrName[][];
int[][] x1; // int x1[][];
float[][] x2;
2、分配空间
x1 = new int[3][5];
x2 = new float[5][];
3、初始化
(1) 默认初始化
float[][] f = new float[3][5];
数组f中每个元素有默认初始值 0.0
(2)静态初始化
char[][] c = {{'A','B','C'},{'1','2','3'}};
int[][] i = new int[][]{{1,2},{3,4},{5,6}};
(3)动态初始化
double[][] d = new double[3][2];
d[0][0]=1.0;
d[0][1]=1.2;
d[1][0]=2.1;
d[1][1]=2.3;
d[2][0]=3.5;
d[2][1]=3.25;
e.g.
public class Demo1 {
public static void main(String[] args) {
// 声明5行5列的二维数组并对其进行动态初始化
int[][] x = new int[5][5];
int k=1;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
x[i][j]=k;
k++;
}
}
// 输出数组中的每个元素
for(int[] m :x){
for(int t : m){
System.out.print(t+"\t");
}
System.out.println();
}
}
}
4、二维数组的应用
e.g. 定义一个5*5的二维数组并进行动态初始化,
数组中的各元素满足数列 1,1,2,3,5,8,…
计算此数组主对角线元素和副对角线元素之和,并输出。
public class Demo3 {
// 1,1,2,3,5,8,13,...
static int f(int k){
// if(k==1||k==2) return 1;
// else return f(k-1)+f(k-2);
return k==1||k==2?1:f(k-1)+f(k-2);
}
public static void main(String[] args) {
int[][] x = new int[5][5];
int k = 1;
int sum = 0;
// 使用f(k)对数组 x 进行初始化
for(int i=0;i
*3.3 不规则数组
Java中,多维数组被解释为数组的数组,因此衍生出一种不规则数组。
int[][] x = new int[3][];
x[0] = new int[1];
x[1] = new int[2];
x[2] = new int[3];
char[][] c = {{'A'},{'B','C'},{'D','E','F'}};