Java 语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,….,number99。

声明数组变量

首先必须声明数组变量,才能在程序中使用数组。

格式1:数据类型[] 数组名 = {值1,值2,值3,值4}

  1. //数据类型[] 数组名 = {值1,值2,值3,值4}
  2. //int[] age = {1,2,3,4};
  3. public class ArrayDemo2 {
  4. public static void main(String[] args) {
  5. //格式2 数组第二种定义方式
  6. //数组类型[] 数组名 = {值1,值2,值3,值4}
  7. int[] age = {1,2,3,4};
  8. System.out.println(age[0]); //打印age第一个值1
  9. System.out.println(age[1]);//打印age第一个值2
  10. System.out.println(age[2]);//打印age第一个值3
  11. System.out.println(age[3]);//打印age第一个值4
  12. age[3] = 100; //对age的第四个值重新赋值
  13. System.out.println(age[3]);//打印结果是100
  14. System.out.println(age.length);//打印数组的长度
  15. System.out.println(age);//直接打印数组地址值,说明数组是在内存中开辟一个新空间
  16. }
  17. }
  18. 输出结果:
  19. 1
  20. 2
  21. 3
  22. 4
  23. 100
  24. 4
  25. [I@61bbe9ba

格式2: 数组类型[] 数组名 = new 数组类型[长度]

  1. public class ArrayDemo {
  2. public static void main(String[] args) {
  3. //数组 数据类型、长度一致,意义一致
  4. //定义一个用来存放一个班级学生年龄的数组
  5. // int age1 = 15;
  6. // int age2 = 16;
  7. // int age3 = 17;
  8. // int age4 = 18;
  9. // int age5 = 19;
  10. // int age6 = 20;
  11. //数组的默认值,整数0,小数0.0,boolean、false、char 空字符 引用数据类型 null
  12. //格式2 int[] 数组名 = new int[长度]
  13. int[] ageArray = new int[6];//数字6代表6个长度
  14. ageArray[0]=15;
  15. ageArray[1]=16;
  16. ageArray[2]=17;
  17. ageArray[3]=18;
  18. ageArray[4]=19;
  19. ageArray[5]=20;
  20. System.out.println(ageArray[0]);//输出当前数组的地址值
  21. System.out.println(ageArray[1]);
  22. System.out.println(ageArray[2]);
  23. System.out.println(ageArray[3]);
  24. System.out.println(ageArray[4]);
  25. System.out.println(ageArray[5]);
  26. //获取数组的长度 .length方法 数组的最大索引等于数组的长度减1
  27. System.out.print(ageArray.length);
  28. //ArrayIndexOutOfBoundsException 数组越界,如果打印第7个值就会报错
  29. // System.out.print(ageArray[6]); //总长度只有6,索引为6代表第7个
  30. }
  31. }
  32. 输出结果:
  33. 15
  34. 16
  35. 17
  36. 18
  37. 19
  38. 20
  39. 6

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 age.length-1,即数组最大索引长度等于数组的长度减1.
**

处理数组

数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。

  1. public static void main(String[] args) {
  2. double[] myList = {1.9, 2.9, 3.4, 3.5};
  3. // 打印所有数组元素
  4. for (int i = 0; i < myList.length; i++) {
  5. System.out.println(myList[i] + " ");
  6. }
  7. // 计算所有元素的总和
  8. double total = 0;
  9. for (int i = 0; i < myList.length; i++) {
  10. total += myList[i];
  11. }
  12. System.out.println("Total is " + total);
  13. // 查找最大元素
  14. double max = myList[0];
  15. for (int i = 1; i < myList.length; i++) {
  16. if (myList[i] > max) max = myList[i];
  17. }
  18. System.out.println("Max is " + max);
  19. }
  20. 输出结果:
  21. 1.9
  22. 2.9
  23. 3.4
  24. 3.5
  25. Total is 11.7
  26. Max is 3.5


多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。

格式1:数组类型[][] 数组名 = new 数据类型 [横长度][纵长度] 动态初始化

  1. public class ArrayDemo2 {
  2. public static void main(String[] args) {
  3. int [][] array = new int[2][3];
  4. System.out.println(array[0][0]);
  5. }
  6. }

格式2: 数组类型[][] 数组名 = {{值1,值2},{值1,值2},{值1,值2}}

  1. public class ArrayDemo {
  2. public static void main(String[] args) {
  3. //二维数组 长度是可以不一样的
  4. String [][] basketballSsuperstar = {{"詹姆斯","哈登","杜兰特"},{"科比","乔丹","奥尼尔"},{"波波维奇","斯隆"}};
  5. //打印哈登
  6. System.out.println(basketballSsuperstar[0][1]);
  7. //用韦斯特布鲁克替换哈登 然后打印出来
  8. basketballSsuperstar[0][1] = "韦斯特布鲁克";
  9. System.out.println(basketballSsuperstar[0][1]);
  10. System.out.println(basketballSsuperstar.length);
  11. //分别输出第一排、第三排的长度
  12. System.out.println(basketballSsuperstar[0].length);
  13. System.out.println(basketballSsuperstar[2].length);
  14. System.out.println("================="+basketballSsuperstar[2][1]);
  15. }
  16. }
  17. 输出结果:
  18. 哈登
  19. 韦斯特布鲁克
  20. 3
  21. 3
  22. 2
  23. =================斯隆

Arrays 类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:

  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作