数组、排序和查找
数组
三种初始化方式
-
动态初始化(1)
数据类型 [] 数组名=new 数据类型 [大小];
int [] num =new int [10];
可以 使用数组名.length获取数组长度
Scanner sc = new Scanner(System.in); for (int i = 0; i < weight.length; i++) { weight[i] = sc.nextDouble(); } for (int i = 0; i < 5; i++) { System.out.println(weight[i]); }
-
动态初始化(2)
数据类型 [] 数组名;
int [] nums; nums = new int[5];
-
静态初始化
数据类型 [] 数组名={元素值 , 元素值 , ... };
int[] arrays = {1, 2, 3, 4, 5};
-
注意细节:
这里主要注意数组元素的类型要一致以及数组下标是否越界
小练习:
1.存贮字母表并打印
//字母表 double [] alpha = new double[26]; char a = 'A'; for (int i = 0; i < alpha.length; i++) { alpha[i] =a; a++; System.out.print((char) alpha[i] + "\t"); }
老师改进:
double [] alpha = new double[26]; for (int i = 0; i < alpha.length; i++) { alpha[i] ='A' + i; System.out.print((char) alpha[i] + "\t"); }
2.找出数组元素最大值和对应下标
double [] num = {5.6 , 56, 88 , -8 ,3.14, 4678 }; double max = 0; int maxIndex = 0; for (int i = 0; i < num.length ; i++){ if (num[i] > max){ max = num[i]; maxIndex = i; } } System.out.println("max:" + max +"index:" + maxIndex);
老师版:
double [] num = {5.6 , 56, 88 , -8 ,3.14, 4678 }; double max = num[0]; //将第一个元素假定为最大值 int maxIndex = 0; for (int i = 1; i < num.length ; i++){
//然后从第二个元素开始遍历 if (num[i] > max){ max = num[i]; maxIndex = i; } } System.out.println("max:" + max +"index:" + maxIndex);