zoukankan      html  css  js  c++  java
  • 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 }

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

  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/wx60079/p/13194107.html
Copyright © 2011-2022 走看看