• java编程基础--数组


    数组的定义:

    数组是指一组数据的集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。

    数组的基本特点:
    1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
    2. 其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型
    3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
    4. 数组的元素在堆内存中被分配空间,并且是连续分配的
    5. 使用new 关键字对数组进行 内存的分配。每个元素都会被jvm 赋予默认值。
    6. 数组的元素都是有序号的,序号从0开始,0序的。称作数组的下标、索引、角标

    数组的声明:
    1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
    2. 声明一个数组的时候并没有数组真正被创建。
    3. 构造一个数组,必须指定长度。

    数组格式:
    元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];  // int [] arr = new int [3];
    []:代表这是数组类型。
    数组名:一个合法的标识符,命名规范 和 局部变量 规范一致。
    new:是java 的关键字。用来向JVM申请内存的。
    元素类型[元素个数] :决定了向JVM申请的内存空间的大小。 
           大小 :元素类型字节数 * 元素个数
    元素的个数:只要是一个合法的java 表达式就可以。 返回一个int 类型的值即可

     1 public class Example {
     2     public static void main(String[] args) {
     3       int[] arr =new int[4]; //定义可以储存4个整数的数组
     4         arr[0] = 1; //为第一个元素赋值
     5         arr[1] = 2; //为第二个元素赋值
     6         //下面的 代码是打印数组中每个元素的值
    7 System.out.println("第一个元素的值为:" + arr[0]); 8 System.out.println("第二个元素的值为:" + arr[1]); 9 System.out.println("第三个元素的值为:" + arr[2]); 10 System.out.println("第四个元素的值为:" + arr[3]); 11 12 } 13 14 }

    运行结果如图--

     第三,四个元素没有赋值,数组会自动赋予一个默认值:

      byte,short,int,long--默认初始化值:0

      float,double--默认初始化值:0.0

      char--默认初始化值:一个空字符,即'u0000'

      boolean--默认初始化值:false

      引用数据类型:null,表示变量不引用任何对象

     数组的常见问题:

     数组的优缺点:
    优点:
    1:可以保存若干个数据。
    2:随机访问的效率很高。根据下标访问元素效率高(元素连续分配空间)。
    缺点:
    1:数组的元素的类型必须一致。元素类型必须一致。
    2:连续分配空间在堆中,如果数组的元素很多,对内存的要求更加的严格。
    3:根据内容查找元素效率比较低,需要逐个比较个。
    4:删除元素、插入元素效率比较低,需要移动大量的元素。
    5:数组定长,不能自动扩容。
    6:数组没有封装,数组对象只提供了一个数组长度的属性,但是没有提供方法用来操作元素。
    java 提供了一整套的 针对不同需求的 对于容器的解决的方案。集合框架部分。不同的容器有不同的特点,满足不同的需求。数组的缺点都会被干掉

    数组的初始化:静态初始化、动态初始化、默认初始化
    静态初始化:int[] arr = { 123 };// 静态初始化基本类型数组;
    动态初始化:int[] arr = new int[2];//动态初始化数组,先分配空间;
          arr[0]=1;//给数组元素赋值;
          arr[1]=2;//给数组元素赋值;
    默认初始化:int arr[] = new int[2]; // 默认值:0,0
          boolean[] b = new boolean[2]; // 默认值:false,false
          String[] s = new String[2]; // 默认值:null, null

    数组遍历

     1 public class Example {
     2     public static void main(String[] args) {
     3         int[] arr = {1, 2, 3, 4, 5}; //定义一个数组
     4 
     5         //for循环
     6         for (int i = 0; i <arr.length ; i++) {
     7             System.out.println(arr[i]);;
     8         }
     9     }
    10 
    11 }

    数组最值

     1 public class Example {
     2     public static void main(String[] args) {
     3         int[] arr = {1, 6, 3, 4, 9, 8}; //定义一个数组
     4         int max = getMax(arr); //调用获取元素最大值的方法
     5         System.out.println("最大值为 :" + max); //打印最大值
     6     }
     7     static int getMax(int[] arr){
     8         //定义变量max用于记住最大数,首先假设第一个元素为最大值
     9         int max =arr[0];
    10         //for循环
    11         for (int i = 0; i <arr.length ; i++) {
    12             if (arr[i] > max) { //比较
    13                 max = arr[i]; //赋值
    14             }
    15         }
    16             return max; //返回最大值
    17         }
    18 
    19 }

     多维数组
      多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。

  • 相关阅读:
    Thinking Clearly about Performance
    国家统计局2018-10-30统计的最新的省市区
    Java 返回字符串中第一个不重复字符的下标 下标从0开始
    国际象棋的游戏规则
    Python语言之requests库
    VBS 自动发消息给对方
    Windows
    上海合计共有16个区一个县
    @RequestMapping中的注解
    Linux 中 /proc/kcore为啥如此之大
  • 原文地址:https://www.cnblogs.com/wx60079/p/13194107.html
Copyright © 2020-2023  润新知