今天,我们将要谈到的是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. Dynamics CRM导出数据到Excel

    原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...

  2. Module Zero之权限管理

    返回<Module Zero学习目录> 概览介绍 角色权限 用户权限 概览介绍 Module-Zero实现了ABP授权系统的IPermissionChecker接口.这篇文章中,我们将会看 ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (34) ------ 第六章 继承与建模高级应用之多条件与QueryView

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-10  创建一个多条件过滤 问题 你想使用多个条件为实体过滤表中的行. 解决方案 ...

  4. LeetCode Note 1st,practice makes perfect

    1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...

  5. 使用Emit把Datatable转换为对象集合(List<T>)

    Emit生成动态方法部分摘自网上,但是经过修改,加入了对委托的缓存以及类结构的调整,使之调用更简洁方便.大致的思路是:要实现转换datatable到某个指定对象的集合,本质是实现转换一个datarow ...

  6. The replication agent has not logged a progress message in 10 minutes.

    打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning, ...

  7. Divshot —— 在线的可视化网页设计

    Divshot 是一个在线网站,通过可视化方式进行 Web 界面的设计,并直接生成 HTML 和 CSS 代码.该工具提供常用的 Web UI 组件.界面基于 Twitter 的 Bootstrap  ...

  8. ASP.NET MVC5 网站开发实践(二) Member区域 - 全部文章列表

    显示文章列表分两块,管理员可以显示全部文章列表,一般用户只显示自己的文章列表.文章列表的显示采用easyui-datagrid.后台需要与之对应的action返回json类型数据   目录 ASP.N ...

  9. 【原创】开源Math.NET基础数学类库使用(14)C#生成安全的随机数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  10. PHP+MySQL代码部署在Linux(Ubuntu)上注意事项

    最近帮同学做一个网站,同学买的是阿里云服务器,Linux发行版是Ubuntu12.04.我在本地把程序写好,都调试好了.然后他让我自己发布和部署.之前在大学里上操作系统课程时,也用过一段时间的Ubun ...