JavaSE(基础篇)——数组(二)

简介: JavaSE(基础篇)——数组(二)

5.数组边界

下标的合法区间:[0, length-1],如果越界就会报错;


public static void main(String[] args) {
 int[] a=new int[2]; 
System.out.println(a[2]); 
}



6.小结

数组是相同数据类型(数据类型可以为任意类型)的有序集合。

数组也是对象。数组元素相当于对象的成员变量(详情请见内存图)。

数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBounds。


数组的使用

1.For-Each

JDK1.5引进了一种新型循环类型,被称为For-Each循环或者加强型循环,它们在不使用下标的情况下遍历数组。


语法格式为:


for(type element: array){
 System.out.println(element); 
}

【示例】


public static void main(String[] args) { 
double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 
for (double element: myList) { 
System.out.println(element);
 } 
}

2.数组作为方法传入

数组可以做参数传递给方法。


例如下面一个例子就是打印数组:


public static void printArray(int[] array) { 
for (int i = 0; i < array.length; i++) { 
System.out.print(array[i] + " ");
 } 
}

3.数组做返回值

public static int[] reverse(int[] list) { 
int[] result = new int[list.length]; 
for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { 
result[j] = list[i];
 }
return result; 
}

上述例子中result作为数组返回。


多维数组

多维数组可以看作是数组的数组,比如一个二维数组就是一个一维数组组成的一维数组。


1.多维数组的动态初始化(以二维数组为例)

直接为每一维分配空间,格式如下;

type[][] typeName = new type[typeLength1][typeLength2];

2.多维数组的引用(以二维数组为例)

type 可以为基本数据类型和复合数据类型, arraylenght1 和 arraylenght2 必须为正整数,

arraylenght1 为行数, arraylenght2 为列数。

比如定义一个二维数组:

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

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

对二维数组中的每个元素,引用方式为 arrayName[index1] [index2] ,例如:

num[1] [0];

其实二维甚至多维数组十分好理解,我们把两个或者多个值当做定位就好。


原来的数组就是一条线,我们知道一个位置就好 。

二维就是一个面,两点确定一个位置。

三维呢,就需要三个点来确定。

依次理解就可以。


3.获取数组长度:

a.length获取的二维数组第一维数组的长度,a[0].length才是获取第二维第一个数组长度。

Arrays 类

数组中的工具类java.util.Arrays。


由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从


而可以对数据对象进行一些基本的操作。

文档简介

image.png



Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用" 而不是 "不能")


java.util.Arrays 类能方便地操作数组. 使用之前需要导包!


具有一下常用功能:


1.给数组赋值:通过 fifill 方法。


2.对数组排序:通过 sort 方法,按升序。


3.比较数组:通过 equals 方法比较数组中元素值是否相等。


4.查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。


【具体说明请看下表】

image.png



1.打印数组

public class java1 {
    public static void main(String[] args) {
        int[] nums = new int[5];
        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        nums[3] = 4;
        nums[4] = 5;
        System.out.println(Arrays.toString(nums));
    }
}


目录
相关文章
|
存储 Java 编译器
数组的定义与使用【JavaSE】
数组的定义与使用【JavaSE】
40 0
|
7月前
|
存储 Java 索引
|
7月前
|
存储 Java 索引
|
存储 机器学习/深度学习 Java
【javaSE】 数组的定义与使用
【javaSE】 数组的定义与使用
|
7月前
|
存储 Java C语言
JavaSE之数组
JavaSE之数组
54 0
|
存储 机器学习/深度学习 Java
【JavaSE】数组的定义与使用
【JavaSE】数组的定义与使用
|
存储 Java 索引
【JavaSE专栏26】数组是什么?如何定义
【JavaSE专栏26】数组是什么?如何定义
|
存储 安全 Java
【JavaSE】Java基础语法(十三):Java 中的集合(十分全面)(1)
List, Set, Queue, Map 四者的区别? List (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。 Set (注重独⼀⽆⼆的性质): 存储的元素是⽆序的、不可重复的。 Queue (实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。 Map (⽤ key 来搜索的专家): 使⽤键值对(key-value)存储,类似于数学上的函数 y=f(x),“x” 代表 key,“y” 代表 value,key 是⽆序的、不可重复的,value 是⽆序的、可重复的,每个键最 多映射到⼀个值。
|
存储 安全 算法
【JavaSE】Java基础语法(十三):Java 中的集合(十分全面)(2)
List, Set, Queue, Map 四者的区别? List (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。 Set (注重独⼀⽆⼆的性质): 存储的元素是⽆序的、不可重复的。 Queue (实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。 Map (⽤ key 来搜索的专家): 使⽤键值对(key-value)存储,类似于数学上的函数 y=f(x),“x” 代表 key,“y” 代表 value,key 是⽆序的、不可重复的,value 是⽆序的、可重复的,每个键最 多映射到⼀个值。
|
存储 机器学习/深度学习 算法
【JavaSE】数组的详解
本文讲解:数组的详解。