JAVA入门-5:数组和foreach循环
首先,我们先了解一下什么是数组!
1. 什么是数组
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 件商品的价格),这时再依次创建变量声明并赋值显得非常麻烦。随着处理的信息量越来越大,工作也就越来越烦琐,这时可以使用数组或集合来存储信息。
数组用来存储一系列的数据项,其中的每一项具有相同的基本数据类型、类或相同的父类。通过使用数组,可以在很大程度上缩短和简化程序代码,从而提高应用程序的效率。
说的通俗一点,没有数组就好比我们要把同一样东西全都放到一个盒子里面,有了数组就是把这些东西平均分到多个盒子里面!
2. 创建数组
下面就是如何创建一个数组,创建数组有三种方式。
第一种:
public class Test {
public static void main(String[] args) {
//第一种创建方法,这是一个长度为5的数组,但是数组内容全部为0,因为我们没有给它赋值
int[] arr = new int[5];//方括号内的数字为数组长度
//用for循环输出一下这个数组
for (int i = 0; i < arr.length; i++) {
System.out.println("arr["+i+"]="+arr[i]+" ");
}
}
}
结果为:
注:数组下标是从0开始的。
第二种:
public class Test {
public static void main(String[] args) {
//第二种创建方法,这是一个长度为5的数组,跟第一种不同的是这一种直接给数组赋值了
int[] arr = {1,2,3,4,5};//因为给数组赋了5个值,所以数组长度为5
//循环输出一下
for (int i = 0; i < arr.length; i++) {
System.out.println("arr["+i+"]="+arr[i]+" ");
}
}
}
结果是:
第三种:
public class Test {
public static void main(String[] args) {
//第三种有点像是第一种和第二种的结合,并未定义这个数组长度,是直接给它赋值了
int[] arr= new int[]{1,2,3,4,5};
//循环输出一下
for (int i = 0; i < arr.length; i++) {
System.out.println("arr["+i+"]="+arr[i]+" ");
}
}
}
结果是:
我定义的都是int(整数)类型的数组,大家可是试试其他类型的如 double、float、String等;
这就是创建数组的三种方法;
之前我们用的都是for进行循环,下面说一种新类型的循环,JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。
for(type element: array)//type循环依据类型,element循环条件名称,array要被循环的数组
{
System.out.println(element);
}
上面就是数组,不过数组呢不光是这一种,上面说到的只是最简单的一种,也可能是初期最常用的一种,它叫做一维数组,下面我们说说二维数组、三维数组、多维数组;
3. 二维数组:
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:
type arrayName = new type[arraylenght1][arraylenght2];
注: type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数,arraylenght1 为行数,arraylenght2 为列数。
例如:
int a[][] = new int[2][3];
解析: 二维数组 a 可以看成一个两行三列的数组。
4. 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等)。 |
好了这就是数组的一下知识!
每天进步一点点!