当前位置:网站首页 > Java基础 > 正文

自学java基础6



数组

1. 数组的概述

概念:
  用来存储一组相同数据类型的集合(或者叫容器)
注意事项:
  1. 数组中的元素类型必须一致
  2. 数组本身是引用数据类型,但是里面的元素既可以是基本数据类型,也可以是引用数据类型
  3. 数组的长度一旦给定无法改变
2. 数组的初始化
2.1 动态初始化
概念:
  给定数组的长度,由系统分配空间和初始值
格式:
  数据类型[] 数组名 = new 数据类型[数组的长度];
数组的赋值和取值:
  索引: 索引是从 0 开始的,索引的最大值是数组的长度减 1
  赋值: 数组名[索引值] = 要赋的值
  取值: 数组名[索引值];
public class Init { public static void main(String[] args) 自学java基础6{ int[] array = new int[4]; // 动态初始化 //数据类型[] 数组名 = new 数据类型[数组的长度]; array[0] = 10; // 赋值 array[1] = 20; // 赋值 array[2] = 30; // 赋值 array[3] = 40; // 赋值 for (int i = 0; i <= 3; i++) { System.out.println(array[i]); } } }

2.2 动态初始化

概念
  给定数组中的元 素,由系统分配长度并赋值.
格式:
  数据类型[ ] 数组名 = new 数据类型[]{元素 1,元素 2….};
简写格式:
  数据类型[ ] 数组名 = {元素 1,元素 2….};
注意事项:
  只有第一次定义的时候可以简写,重写赋值的时候不能简写
  不能在定义数组的时候,又给定长度,有给定值
  数组长度的获取: 数组名.length
public class InitPractice { // public static void main(String[] args) { // char [] arr_char = new char[] {'默','努','力','的','C'}; // int a = arr_char.length; // for (int i =0; i<a; i++) { // System.out.println(arr_char[i]); // } // } public static void main(String[] args) { boolean [] arr_bool = new boolean [] {false, false, true, true}; System.out.println(arr_bool[0]); } }

3. 数组的内存分析

栈(stack):局部变量和方法的执行,没有初始值

堆(heap): new出来的东西,有初始值--->基本数据类型:对应默认值

                  引用数据类型:null

4. 数组常见异常

空指针异常:
  产生的原因: 使用 null 调用堆中的内容,要注意的是,如果一个变量的初始值是 null, 直接打印是不报错的,只有调用他里面的东西才会报空指针
例子:
  int [] arr = null;//有初始值,初始值为 null
  System.out.println(arr); //null
  System.out.println(arr[0]);// java.lang.NullPointerException
数组角标越界异常:
  产生的原因:数组的索引值超出的最大的范围,就会出现该异常
例子:
  int[] arr = new int[3];// 索引值 0-2
  System.out.println(arr[4]); // java.lang.ArrayIndexOutOfBoundsException

5. 数组应用

5.1 数组遍历

例子:定义一个数组{1,2,3,4,5}; 按如下格式打印数据:

       [1,2,3,4,5]
 public static void printArr(int[] arr) { for (int i = 0; i < arr.length; i++) { if (arr.length == 1) { System.out.println("[" + arr[i] + "]"); } else if (i == 0) { System.out.println("[" + arr[i] + ","); } else if (i == arr.length - 1) { System.out.println(arr[i] + "]"); } else { System.out.println(arr[i] + ","); } } }

可以单独封装成方法,public static 在同一个包下可以在不同的class文件中引用

引用方法格式:文件名.方法名(传入的参数)

和python封装类似

5.2 最值

求出一个数组中个最大值和最小值

思路:
  1. 设置一个变量用来代表最值(数组中的第一个元素)
  2. 用这个变量和数组中的每一个元素作比较
  3. 如果数组中有元素比他大,就把他的值重新赋值
  4. 比较结束后,打印最值
 public static void printMaxandMin(int[] arr) { int max = arr[0]; int min = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } if (min > arr[i]) { min = arr[i]; } } System.out.println("最大值为:" + max); System.out.println("最小值为:" + min); }

5.3 元素交换

将数组中两个元素做交换

思路:
  1. 引入一个中间量
  2. 中间量赋值为arr[i]
  3. arr[i] = arr[j]
  4. 然后 arr[j] = 中间量
/*
  这是逆序,相当于头尾两两元素对应交换

*/
public static void reverse(int[] arr) { for (int i =0; i<arr.length/2; i++) { int temp = arr[i]; arr[i] = arr[arr.length-1-i]; arr[arr.length-1-i] = temp; } for (int j = 0; j<arr.length;j++) { System.out.print(arr[j]); } }

版权声明


相关文章:

  • Java面试基础编程题2025-04-20 17:58:01
  • 湖南java编程基础2025-04-20 17:58:01
  • 黑马 徐磊Java基础2025-04-20 17:58:01
  • java基础考卷2025-04-20 17:58:01
  • java技术基础ppt2025-04-20 17:58:01
  • java基础实验目的2025-04-20 17:58:01
  • java基础循环举例2025-04-20 17:58:01
  • java零基础自学教程免费2025-04-20 17:58:01
  • java ee需要什么基础2025-04-20 17:58:01
  • java项目基础实战2025-04-20 17:58:01