java入门-数组

数组

数组是相同类型数据的有序集合

数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成

其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

数组声明

首先必须声明数组变量,才能在程序中使用数组。

下面是声明数组变量的语法:

dataType[] arrayRefVar;   // 首选的方法
 
或
 
dataType arrayRefVar[];  // 效果相同,但不是首选方法

Java语言使用new操作符来创建数组,语法如下:

dataType[] arrayRefVar = new dataType[arraySize];

数组的元素是通过索引访问的,数组索引从 0 开始。

获取数组长度:

arrays.lenght

实例

下面的语句首先声明了一个数组变量 nums,接着创建了一个包含 5 个 int 类型元素的数组,并且把它的引用赋值给nums变量。

public static void main(String[]args){
    //声明一个数组
    int[] nums;
    //创建一个数组
    nums = new int[5];
    //给数组元素赋值
    nums[0]=1;
    nums[1]=2;
    nums[2]=3;
    nums[3]=4;
    nums[4]=5;
    //计算所有元素的总和
    int sum = 0;
    for(int i = 0;i < nums.lenght;i++){
        sum = sum + num[i];//记录总和
    }
    System.out,println("所有元素的总和"+sum);
}

执行结果:

所有元素的总和:15

初始化

静态初始化一

int[] a = {1,2,3};

静态初始化二

Man[] mans = {new Man(1,1),new Man(2,2)};

动态初始化

int[] a = new int[2];
a[0] = 1;
a[1] = 2;

数组的默认初始化:

​数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被初始化。

数组的四个基本特点

  • 其长度是确定的,数组一旦被创建,它的大小就是不可以改变的
  • 其元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
    数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型
    数组对象本身实在堆中的

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组

二维数组语法:

int a[][] = new int[2][5];

解析:以上的二维数组a可以看成一个两行五列的数组

Arrays类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 给数组赋值:通过 fill 方法
  • 对数组排序:通过 sort 方法,按升序
  • 比较数组:通过 equals 方法比较数组中元素值是否相等
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作

具体说明请查看下表:

序号 方法和说明
1 public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
2 public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
3 public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
4 public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

冒泡排序

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。
重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较

public static int[] sort(int[]array){
    //临时变量
    int temp = 0;
    //外层循环,判断走多少次
    for(int i = 0;i < array;i++){
        //内层循环,比较判断两个数,第一个数比第二个数大,则交换位置
        for(int j = 0;j < array.length-1-i;j++){
            if(array[j+1]>array[j]){
                temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
}

你可能感兴趣的:(java入门,java,javase)