Java 数组基础

 数组(Array):相同类型数据的集合。

定义数组

  方式1(推荐,更能表明数组类型)

  type[] 变量名 = new type[数组中元素的个数];

  比如:

  int[] a = new int[10];

  数组名,也即引用a,指向数组元素的首地址。

  方式2(同C语言)

  type变量名[] = new type[数组中元素的个数];

  如:

  int a[] = new int[10];

  方式3 定义时直接初始化

  type[] 变量名 = new type[]{逗号分隔的初始化值};

  其中红色部分可省略,所以又有两种:

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

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

  其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

数组运用基础

数组长度

  Java中的每个数组都有一个名为length的属性,表示数组的长度。

  length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

equals()

  数组内容的比较可以使用equals()方法吗?

  如下程序:

public class ArrayTest
{
public static void main(String[] args)
{
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};

System.out.println(a.equals(b));
}
}

输出结果是false。

  所以证明不能直接用equals()方法比较数组内容,因为没有override Object中的实现,所以仍采用其实现,即采用==实现equals()方法,比较是否为同一个对象。

  怎么比较呢?一种解决方案是自己写代码,另一种方法是利用java.util.Arrays

  java.util.Arrays中的方法全是static的。其中包括了equals()方法的各种重载版本。

  代码如下:

ArrayEqualsTest.java

import java.util.Arrays;
public class ArrayEqualsTest
{
//Compare the contents of two int arrays
public static boolean isEquals(int[] a, int[] b)
{
if( a == null || b == null )
{
return false;
}
if(a.length != b.length)
{
return false;
}
for(int i = 0; i < a.length; ++i )
{
if(a[i] != b[i])
{
return false;
}
}
return true;
}

public static void main(String[] args)
{
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};

System.out.println(isEquals(a,b));
System.out.println(Arrays.equals(a,b));
}
}

数组元素不为基本数据类型时

  数组元素不为基本原生数据类型时,存放的是引用类型,而不是对象本身。当生成对象之后,引用才指向对象,否则引用为null。

  如下列程序:

ArrayTest2.java

public class ArrayTest2
{
public static void main(String[] args)
{
Person[] p = new Person[3];

//未生成对象时,引用类型均为空
System.out.println(p[0]);

//生成对象之后,引用指向对象
p[0] = new Person(10);
p[1] = new Person(20);
p[2] = new Person(30);

for(int i = 0; i < p.length; i++)
{
System.out.println(p[i].age);
}

}
}
class Person
{
int age;
public Person(int age)
{
this.age = age;

}
}

  输出:

  null

  10

  20

  30

  也可以在初始化列表里面直接写:

  Person[] p = new Person[]{new Person(10), new Person(20), new Person(30)};

二维数组

  二维数组是数组的数组。

二维数组基础

  基本的定义方式有两种形式,如:

  type[][] i = new type[2][3];(推荐)

  type i[][] = new type[2][3];

  如下程序:

public class ArrayTest3
{
public static void main(String[] args)
{

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

System.out.println("Is i an Object? "
+ (i instanceof Object));

System.out.println("Is i[0] an int[]? "
+ (i[0] instanceof int[]));

}
}

输出结果是两个true。

变长的二维数组

  二维数组的每个元素都是一个一维数组,这些数组不一定都是等长的。

  声明二维数组的时候可以只指定第一维大小,空缺出第二维大小,之后再指定不同长度的数组。但是注意,第一维大小不能空缺(不能只指定列数不指定行数)。

  如下程序:

public class ArrayTest4
{
public static void main(String[] args)
{
//二维变长数组
int[][] a = new int[3][];
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[1];

//Error: 不能空缺第一维大小
//int[][] b = new int[][3];
}
}

二维数组也可以在定义的时候初始化,使用花括号的嵌套完成,这时候不指定两个维数的大小,并且根据初始化值的个数不同,可以生成不同长度的数组元素。

  如下程序:

public class ArrayTest5
{
public static void main(String[] args)
{

int[][] c = new int[][]{{1, 2, 3},{4},{5, 6, 7, 8}};

for(int i = 0; i < c.length; ++i)
{
for(int j = 0; j < c[i].length; ++j)
{
System.out.print(c[i][j]+" ");
}

System.out.println();
}

}
}

 输出:

  1 2 3

  4

  5 6 7 8

时间: 2024-08-25 10:49:46

Java 数组基础的相关文章

Java 数组基础,java.util.Arrays

定义数组 方式1(推荐,更能表明数组类型) 方式2(同C语言) 方式3?定义时直接初始化 数组运用基础 数组长度 equals() 数组元素不为基本数据类型时 二维数组 二维数组基础 变长的二维数组 java.utils.Arrays 类 参考文献: ? 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地

浅析Java 数组-基础详解

什么是数组:数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 数组:用来存储固定大小的同类型元素. 一 声明.创建,初始化Java 数组 写在前面:定义Java 数组包括声明和创建:可以先声明,再创建(两步):也可以同时声明和创建(一步). 1.声明 方法1(首选):dataType[] arrayName;  示例:String[] country; 方法2:dataType arrayName[]; : 示例:String country

java数组基础知识

数组的定义:int[] array=new array[n];int array[]={, , , ,};定义了数组,JVM就会给其一个空间,数组是应用类型的数据类型,其存储方式是随机存储. 数组的遍历,一般是通过循环来遍历其元素的,二维数组可以是通过霜或双重循环来遍历.数组的下标是从0开始的. 数组的替换,数组提供了一个方法,两种重载的形式,此方法为fill(),可以通过此方法来填充数组或者替换数组指定位置的元素. public class Array_Fill { public static

JAVA总裁--Java数组基础知识

1.数组的定义: 数组是由一组类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称为元素),每个元素受n(n≥1)个线性关系的约束,每个元素在n个线性关系中的序号i1.i2.-.in称为该元素的下标,并称该数组为 n 维数组. 2.数组的特点: 元素本身可以具有某种结构,属于同一数据类型: 数组是一个具有固定格式和数量的数据集合. 3.数组的语法: package com.eduask.test; import java.util.Scanner; public class Ar

Java数组基础

这周学习了关于数组的学习,在此,我将在这里做一些总结1.首先声明一个数组:数组类型 [ ] 数组名2.定义数组存储空间:数组名 = new 数据类型[空间个数];结合前两个可以直接声明数组:例如 int number=new int[10];//可储存10个元素的整型数组3.给数组赋值:数组名[索引位置]=值;//索引位置及数组的下标 int[10]=1;10及是下标,也是索引位置.如果嫌这样声明步骤多,还有可一次将数组声明.分配空间.赋值合三为一int [] number=new int[]{

[java学习笔记]java语言基础概述之数组的定义&amp;常见操作(遍历、排序、查找)&amp;二维数组

1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一旦创建,必须明确长度)          格式1:              元素类型   [ ]  数组名  =  new  元素类型  [元素个数即数组的长度]:              示例:int[] array = new int[5];          格式2:           

Java Script基础(八) Array数组对象

Java Script基础(八) Array数组对象 一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法: join():把数组中的所有元素放入一个字符串中,通过分隔符进行分隔. sort():对数组元素进行排序. 1.创建数组 语法: var a1 = new Array();           //创建一个数组,长度为0: var a2 = 

java SE 基础复习-数组

数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地址. 方式2(同C语言) type变量名[] = new type[数组中元素的个数]; 如: int a[] = new int[10]; 方式3 定义时直接初始化 type[] 变量名 = new type[]{逗号分隔的初始化值}; 其中红色部

day05&lt;Java语言基础--数组&gt;

Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java语言基础(数组的内存图解2二个数组) Java语言基础(数组的内存图解3三个引用两个数组) Java语言基础(数组的初始化静态初始化及内存图) Java语言基础(数组操作的两个常见小问题越界和空指针 Java语言基础(数组的操作1遍历) Java语言基础(数组的操作2获取最值) Java语言基础(数