博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组的基本概念
阅读量:3948 次
发布时间:2019-05-24

本文共 1995 字,大约阅读时间需要 6 分钟。

数组的基本概念

其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配,而数组的定义语法有如下两类。

  1. 声明并开辟数组:
    数据类型 [] 数组名称 = new 数据类型[长度];
  2. 分布进行数组空间开辟(实例化)

那么当数组开辟空间之后,就可以采用如下的方式的操作:

  1. 数组的访问通过索引完成,即:“数组名称[索引]”

数组引用传递

既然数组属于引用数据类型,那么也一定可以发生引用传递。在这之前首先来研究一下数组的空间开辟。

public class ArrayDemo {
public static void main(String args[]) {
int data[] = null; data = new int[3]; //开辟一个长度为3的数组 data[0] = 10; data[1] = 20; data[2] = 30; }}

在这里插入图片描述

那么既然说到了引用数据类型了,就一定可以发生引用传递,而现在的引用传递的本质也一定是:同一块堆内存空间可以被不同的栈内存所指向。
范例: 定义一个程序

public class ArrayDemo {
public static void main(String args[]) {
int data[] = null; data = new int[3]; //开辟一个长度为3的数组 int temp[] = null; //声明对象 data[0] = 10; data[1] = 20; data[2] = 30; temp = data; //int temp[] = data; temp[0] = 99; for(int i = 0; i < temp.length; i++) {
System.out.println(data[i]); } }}

在这里插入图片描述

数组静态初始化

在之前所进行的数组定义都有一个明显特点:数组先开辟内存空间,而后再使用索引进行内容的设置,实际上这种做法都叫做动态初始化,而如果希望数组在定义的时候可以同时出现设置内容,那么就可以采用静态初始化完成。

数组的静态初始化一共分为以下两种类型:

  1. 简化格式:数据类型 数组名称 = {值, 值,…}
  2. 完整格式:数据类型 数组名称 = new 数据类型[] {值, 值,…}

范例: 采用静态初始化定义数组

public class ArrayDemo {
public static void main(String args[]) {
int data[] = {
1, 2, 4, 545, 11, 32, 13131, 4444}; for(int i = 0; i < data.length; i++) {
System.out.println(data[i]); } }}

在开发之中,对于静态数组的初始化强烈建议使用完整语法模式,这样可以轻松地使用匿名数组这一概念。

public class ArrayDemo {
public static void main(String args[]) {
System.out.println(new int[] {
1, 2, 4, 545, 11, 32, 13131, 4444}.length); }}

以后使用静态方式定义数组的时候一定要写上完整格式。

数组最大的缺陷:长度固定。

二维数组

范例: 定义一个二维数组

public class ArrayDemo {
public static void main(String args[]) {
//此时的数组并不是一个等列数组 int data[][] = new int[][] {
{
1, 2, 3}, {
4, 5}, {
6, 7, 8, 9}}; //如果在进行输出的时候一定要使用双重循环, //外部的循环控制输出的行数,而内部的循环控制输出列数 for(int i = 0; i < data.length; i++) {
for(int j = 0; j < data[i].length; j++) {
System.out.print("data[" + i + "][" + j + "]=" + data[i][j] + "、"); } System.out.println(); } }}

由于输出麻烦,所以可以忽略了,在进行开发之中,出现二位数组的几率并不高。

排序算法

转载地址:http://fmrwi.baihongyu.com/

你可能感兴趣的文章
拼SQL语句执行更新
查看>>
MFC中使用ADO 插入Oracle,数据类型
查看>>
MFC使用ADO在Oracle中查重
查看>>
CH341SER_WIN7_X64 USB转串口驱动程序
查看>>
XDR-使用文件空间编码整数
查看>>
XDR-从文件空间解码整数
查看>>
XDR-.x文件的简单使用
查看>>
XDR-枚举的试用
查看>>
XDR -string的试用
查看>>
XDR-定长数组的使用
查看>>
xdr-union的试用
查看>>
XDR-初探XDR对变长类型空间的管理。--log
查看>>
XDR-变长类型数组-空间管理-log
查看>>
使用CppSQLite3访问SQLite数据库
查看>>
VS2008下使用CppSQLite3访问xgs黑名单表(SQLite数据库)
查看>>
第一个boost程序---timer的使用
查看>>
使用boost asio库实现字节数可控的CS通信
查看>>
linux下串口编程
查看>>
boot asio 非阻塞同步编程---非阻塞的accept和receive。
查看>>
利用ADOX、ADO操纵MDB文件(ACCESS)
查看>>