静态初始化数组
代码结构
简化格式
//int类型
int[] arr = {1,2,3,4,5};
//String类型
String[] arr = {"欢","迎","光","临"};
//double类型
double[] arr = {1,2,3,4,5};
//还包括long,short,char,boolean等类型
完整格式
//double类型
double[] arr = new double arr[]{1,2,3,4,5};
//int类型
int[] arr = new int[]arr{1,2,3,4,5};
//String类型
String[] arr = new String[]{"哈","哈","哈"};
访问数组
//输出
System.out.println(arr[1]);//输出数组中第二个元素
//赋值
arr[1] = 10;
System.out.println(arr[1]);
输出数组长度
//使用length输出数组长度
System.out.println(arr.length);
动态初始化数组
代码结构
//int类型
int[] arr = new int[5];
//double类型
double[] arr = new double[5];
//String类型
String[] arr = new String[5];
注意
//还包括long,short,char,boolean等类型
//double[] arr = new double arr[5]{1,2,3,4,5};
是错误的,不能与静态初始化混用
访问数组
//赋值
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 10;
arr[2] = 100;
//输出
System.out.println(arr[1]);
元素默认值
int[] arr = new int[3];
System.out.println(arr[2]);
//输出0
//short,long,char默认值也是0
double[] arr1 = new double[3];
float[] arr2 = new float[3];
System.out.println(arr1[2]);
System.out.println(arr2[2]);
//输出0.0
String[] arr = new String[3];
System.out.println(arr[2]);
//输出NULL
boolean[] arr = new boolean[3];
System.out.println(arr[2]);
//输出false
注意
1.数组元素的位置标号从零开始
int[] arr = { 1 , 2 , 3};
第 0 1 2 位
2.数据类型[] 数组名也可以写成数据类型 数组名[]
int[] arr = ...;
int arr[] = ...;
两者的效果是一样的
3.程序运行过程中,数组的长度和类型无法改变
4. double[] arr = new double arr[5]{1,2,3,4,5}; 是错误的,动态与静态初始化不能混用
应用
1、数组的遍历
package blackhorse;
public class Arrary {
public static void main(String[] args) {
//静态数组
int[] arr1 = {1,2,3,4,5};
for(int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}
//动态数组
int[] arr2 = new int[3];
arr2[0]= 1;
arr2[1]= 10;
arr2[2]= 100;
for(int j=0;j<arr2.length;j++){
System.out.println(arr2[j]);
}
}
}
运行结果
2、数组求和
package blackhorse;
public class Arrary {
public static void main(String[] args) {
//数组求和
int[] arr1 = {1,2,3,4,5};
int sum = 0;
for(int i=0;i<arr1.length;i++){
sum += arr1[i];
}
System.out.println(sum);
}
}
运行结果
3、找出数组最大值
package blackhorse;
public class Arrary {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
int max = arr1[0];
int maxId = 0;
for(int i=1;i<arr1.length;i++){
if(max<i) {
max = arr1[i];
maxId = i;
}
}
System.out.println("数组最大值为:"+max+"是第"+(maxId+1)+"个元素");
}
}
运行结果
4、随机排列数组中的元素
package blackhorse;
import java.util.Random;
public class Arrary {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
Random r = new Random();
int index = r.nextInt(arr1.length);
int temp;//生成一个临时变量
for(int i =0;i<arr1.length;i++) {
temp = arr1[index];
arr1[index] = arr1[i];
arr1[i] = temp;
}
for(int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}
}
}
运行结果
冒泡排序
package blackhorse;
import java.util.Random;
public class Arrary {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
int n = 1;
for(int i=0;i<arr1.length;i++) {
for(int j = (arr1.length-1);j>=n;j--) {
if(arr1[i]<arr1[j]) {
temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
n++;
}
for(int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}
}
}
运行结果