今天,我们将要谈到的是Java里的数组

数组是一种容器,它是一些相同类型元素的集合。我们可以用数组,去存储一些相同类型的数据,比如,整数,浮点数,字符,...事实上,数组甚至可以用来存储同一个类的多个对象。由此可见其功能的强大。

我们从最简单的数组开始。一维数组是一种线性的数据结构。在Java里面,定义一个一维数组的格式有三种:

1)、数据类型 []数组名=new 数据类型[数组长度]

2)、数据类型 []数组名={数据,...}

3)、数据类型 []数组名=new 数据类型[]{数据,...}

给出定义三个数组的代码如下:

int、char、String是数据类型,[]表示数组,abc是数组名。

对于一个数组,它只有一个属性length,即数组的长度。我们可以用 数组名.length去获取数组的长度。对于数组里某个位置的元素,我们可以用 数组名[下标]的方式去访问或者设置具体值。

二维数组较之一维数组有一定区别。定义一个二维数组的方式也有三种:

1)、数据类型 [][]数组名=new 数据类型[行][列]

2)、数据类型 [][]数组名={{数据,...},...}

3)、数据类型 [][]数组名=new 数据类型[][]{{数据,...},...}

给出三种定义方式的代码如下:

一维数组中的数据,它的内存是线性分配的。也就是说,一维数组内数据的内存是相连的。二维数组与一维数组不一样,二维数组是不是一种线性的数据结构,它是多个线性数据结构的组合。我们可以用 数组名.length去访问这个二维数组有多少行,用 数组名[行下标].length的方式,去访问这个二维数组某行有多少列。这里注意一下,对于第一种定义二维数组的方式,得到的是一个规则的二维数组。但如果你直接给二维数组赋初值的话,那么得到的不一定是一个规则的二维数组。如下:

其输出结果是:

因此,当你定义一个二维数组的时候,你必须要更关注数组越界的问题,以防报错。

除此之外,注意对于一个二维数组a,加入你去访问a[行],那么输出的将是该行的首地址。因此,当你要对二维数组某个位置的元素进行访问和赋值的时候,必须给定具体的行和列的值。

关于更高维度的数组这里就不一一列举了,有兴趣的可以深入探究一下。

个人关于数组的见解就这么多,主要是要灵活运用到我们的代码当中去,简化我们的程序。如果各位大神有什么可以补充的,欢迎评论,有什么问题,希望大家能大方指正出来。

关于Java数组的更多相关文章

  1. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  2. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

  3. Java 数组基础

    数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...

  4. Java数组及其内存分配

    几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...

  5. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

  6. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

  7. Java数组扩容算法及Java对它的应用

    1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...

  8. Java数组与vector互转

    Java数组与vector互转 /* Object[] object1 = null ; //数组定义 Vector<Object> object2;//Vector定义 object2 ...

  9. 比较Java数组,ArrayList,LinkedList,Vector 性能比较

    public class PerformanceTester { public static final int TIMES=100000; public static abstract class ...

  10. Java数组的12个常用方法

    以下是12个关于Java数组最常用的方法,它们是stackoverflow得票最高的问题. 声明一个数组 String[] aArray = new String[5]; String[] bArra ...

随机推荐

  1. TODO:软件升级的那些事

    TODO:软件升级的那些事 软件升级,指软件从低版本向高版本的更新.由于高版本常常修复低版本的部分BUG,所以经历了软件升级,一般都会比原版本的性能更好,得到优化的效果,用户也能有更好的体验. 最近常 ...

  2. xamarin 手机顶部状态栏

    修改显示xamarin开发的App的手机顶部状态栏, 步骤一:在项目UWP上的“引用”里右键“添加引用”,选择->Universal Windows->Windows Mobile Ext ...

  3. k近邻(KNN)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合内容: 1.算法概述 K近邻算法是一种基本分类和回归方法:分类时,根据其K个最近邻的训练实例的类 ...

  4. JavaScript 函数的两种声明方式

    1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...

  5. CSS系列:CSS文字样式

    1. 设置字体 在CSS中字体通过font-family属性来设置. font-family: Verdana, Arial, Helvetica, sans-serif; 上面的字体设置告诉浏览器首 ...

  6. PHP性能测试工具xhprof安装与使用

    原文链接:http://www.orlion.ga/711/ 一.安装 wget https://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0. ...

  7. python统计某一个进程名所占用的内存

    设计思路: 通过python,执行cmd中tasklist命令,获取要统计的进程的相关信息:通过正则表达式,查找出进程名称.进程pid.内存使用,然后打印出来. 作为pythoner,有时候需要统计p ...

  8. 【原创】机器学习之PageRank算法应用与C#实现(1)算法介绍

    考虑到知识的复杂性,连续性,将本算法及应用分为3篇文章,请关注,将在本月逐步发表. 1.机器学习之PageRank算法应用与C#实现(1)算法介绍 2.机器学习之PageRank算法应用与C#实现(2 ...

  9. iOS开发之远程推送

    说到远程推送,应该用的也挺多的,今天就基于SEA的云推送服务,做一个推送的小demo,来了解一下iOS中的远程推送是怎么一回事儿,首先你得有苹果的开发者账号,好咸蛋也差不多了,主要内容走起. 一.准备 ...

  10. Ubuntu杂记——Ubuntu下Eclipse搭建Maven、SVN环境

    正在实习的公司项目是使用Maven+SVN管理的,所以转到Ubuntu下也要靠自己搭环境,自己动手,丰衣足食.步骤有点简略,但还是能理解的. 一.安装JDK7 打开终端(Ctrl+Alt+T),输入  ...