1.数组的概念

数组:是一种特殊的集合,是一种特殊的容器

特殊:
1、数组中只能存储相同的类型的元素。
2、数组的存储空间是连续的
3、数组的长度是固定的,而且是不可改变的

2.数组的定义

  1. 元素类型[] 变量 = new 元素类型[数组的长度];
  2. String[] names2 = {"张三","王五","李四"};

3.数组的使用

数组是按照下标来完成使用的
数组 - 图1
下标从0开始,到 数组的长度-1 结束,如果在使用时,超过了该范围,将抛出
java.lang.ArrayIndexOutOfBoundsException

4.数组的长度

数组名.length

5.数组的遍历

5.1for循环

  1. //遍历数组方式1
  2. for(int i = 0; i <= length -1; i ++) {
  3. System.out.println(names[i]);
  4. }

5.2foreach

  1. //foreach for的增强
  2. for (String str : names) {
  3. System.out.println(str);
  4. }

6.数组的复制

6.1新数组遍历复制

  1. //假设,我还有元素, 需要向nums 中进行填充 ,如何办?
  2. int[] newArr = new int[10];
  3. int lenth = nums.length;
  4. for(int i = 0; i < lenth; i ++) {
  5. newArr[i] = nums[i];

6.2 System.arraycopy()

  1. //假设,我还有元素, 需要向nums 中进行填充 ,如何办?
  2. int[] newArr = new int[10];
  3. System.arraycopy(nums, 0, newArr, 0, nums.length);
  4. newArr[5] = 21;

nums 表示源数组
0 表示源数组需要复制元素的起始位置
newArr 表示目标数组
0 表示目标数组可以设置元素的起始位置
nums.length 表示源数组中可以复制的元素的个数

6.3Arrays(最优)

  1. int[] newArr = Arrays.copyOf(nums, 10);
  2. newArr[5] = 21;

nums 表示源数组
10 表示新数组的长度

7.多维数组

7.1 二维数组(行列)

  1. public class MultiArray {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. //一维
  5. String[] str = {"张三","李四","王五"};
  6. //如果要遍历一维数组,只需要1个for即可完成
  7. //二维(使用场景:电影院 买票选座)
  8. String[][] names = new String[3][3];
  9. int lenth = names.length;
  10. // System.out.println(lenth);
  11. for(int i = 0; i < lenth; i ++) {
  12. String[] strs = names[i];
  13. int lenth02 = strs.length;
  14. for(int j = 0; j < lenth02; j ++) {
  15. names[i][j] = i * j + "";
  16. }
  17. }
  18. //输出
  19. // System.out.println(Arrays.toString(names));
  20. for(int i = 0; i < lenth; i ++) {
  21. String[] strs = names[i];
  22. int lenth02 = strs.length;
  23. for(int j = 0; j < lenth02; j ++) {
  24. System.out.print(names[i][j] + " ");
  25. }
  26. System.out.println();
  27. }
  28. //三维数组同理,它在装或取时,就需要3个嵌套循环

7.2 三维数组(xyz)

同上