zoukankan      html  css  js  c++  java
  • Java学习笔记(三):数组

    数组声明

    java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。

    int arr1[];
    int[] arr2;

    两种写法都可以。

    初始化

    动态初始化

    使用new来为数组分配内存空间:

    int[] arr;
    arr = new int[10];

    需要注意的是分配内存空间时要指定数组的数量,同时数组中的每一个元素都会被设置为对应类型的默认值。

    内存结构

    静态初始化

    相对于上面的初始化,还有一种初始化的方式可以在初始化时就指定好数组的内容:

    int[] arr = {0,1,2,3,4,5,6,7,8,9};//静态初始化必须在声明时进行
    arr = {9,8,7,6,5,4,3,2,1,0};//这里不是声明编译器会报错

    动态初始化和静态初始化在使用和内存结构上都没有区别。

    使用数组

    数组的使用时非常广的,这里写一个冒泡排序的例子来展示一下数组的使用:

     1 package org.hammerc.study;
     2 
     3 public class Main
     4 {
     5     public static void main(String[] args)
     6     {
     7         int[] arr = {100, 187, 22, 9, 199, 500, 1, 134};
     8         for (int i = 0; i < arr.length - 1; i++)
     9         {
    10             for (int j = i + 1; j < arr.length; j++)
    11             {
    12                 if (arr[i] < arr[j])
    13                 {
    14                     int temp = arr[i];
    15                     arr[i] = arr[j];
    16                     arr[j] = temp;
    17                 }
    18             }
    19             System.out.print("第" + (i + 1) + "次排序:");
    20             for (int j = 0; j < arr.length; j++)
    21             {
    22                 System.out.print(arr[j] + " ");
    23             }
    24             System.out.println("");
    25         }
    26         for (int i = 0; i < arr.length; i++)
    27         {
    28             System.out.println(arr[i]);
    29         }
    30     }
    31 }

    降序排序。

    二维及多维数组

    声明

    int arr1[][];
    int[] arr2[];
    int[][] arr3;

    和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。

    动态初始化

    int[][] arr;
    arr = new int[2][3];

    数组所有元素都按类型的默认值来设定。

    静态初始化

    int[][] m = {
            {1,2,3},
            {2,3,4}
    };

    和1维数组使用一致;

    使用

     1 package org.hammerc.study;
     2 
     3 public class Main
     4 {
     5     public static void main(String[] args)
     6     {
     7         int[][] m = {
     8                 {1,2,3,1},
     9                 {1,3},
    10                 {3,4,2}
    11         };
    12         int sum = 0;
    13         for(int i = 0;i < m.length;i++){    //循环第一维下标
    14             sum += m[i].length;             //第二维的长度相加
    15         }
    16     }
    17 }

    需要注意的是Java允许多维数组的第二维的数组的长度不一样,如上面的例子。

  • 相关阅读:
    linux修改键盘按键
    linux添加一个已经存在用户到一个用户组
    centos-6更新yum源(163)
    Fedora 19安装以后的优化
    centos永久性修改系统时间显示格式
    smb.conf文件详解
    Centos上部署文件共享
    centos上mysql开启远程访问
    centos安装mysql后默认密码修改
    centos上mysql的一种安装方式
  • 原文地址:https://www.cnblogs.com/hammerc/p/5200156.html
Copyright © 2011-2022 走看看