难点儿的已经过去啦,现在又开始基础了哈~

之前讲变量的时候,变量是一个个的呀~,那我要搞一串变量该啷个办呢?Java给我们出了个好东西叫数组(*^▽^*)

数组呢,就是将变量一组一组的存起来,这个也是需要先声明然后初始化的。但是这个不属于八种基本类型哈,属于引用类型(Java基础5)。

数组定义

数组定义有四种方式:

1. 先声明,再初始化

声明:类型[] 名称;
初始化:名称 = new 类型[]{元素1, 元素2, 元素…, 元素n};

2. 声明初始化一起

声明&初始化:类型[] 名称 = {元素1, 元素2, 元素…, 元素n};

3. 一起的另一种语法

声明&初始化:类型[] 名称= new 类型[]{元素1, 元素2, 元素…, 元素n};

4. 只给数组长度不给数值

声明:类型[] 名称 = new 类型[数字];

5. 举个栗子

String[] today = {"hello","world","from","ahan"};

数组下标

下标,可以说是数组中元素的编号。而编号在大多数编程语言中,一般都是从0开始,所以咱们数组的下标也是从0开始。比如上面的today,第0个元素就是“hello”。

那怎么来使用它呢?

// 名称[下标]
System.out.println(today[0]);

这样就可以啦。输出的结果:。刚好就是上一段说的hello哦~

以此类推,我们要拿到from,就可以用today[2]了~

说到这里,上面第4点,【类型 名称 = new 类型[长度]】里的长度,不是说的下标哦~比如我today有四个元素,所以它的长度为4,但是它最大的下标是3哦!

数组常用的几个方法

1. 获取长度(length)

众所周知,长度的英文单词是length(不知道也可以啦,现在知道了哈哈哈)。那么获取数组的长度:

System.out.println(today.length); 

对, 名称.length 就是计算获取方法了~

2. 打印输出

直接打印数组

System.out.println(today);

会发现一些奇怪的东西:

诶?和我们想要的不太一样……emm,因为数组是一个引用类型,是对象,所以他这里输出的是对象的形式。对象是什么不重要哈哈哈,目前来说没讲到的对象的话,就把它当做一个普通名词听吧…那这里稍微解释一下输出的这个东西:

[Ljava.lang.String;@7b1d7fff
[ 一维数组
[[ 二维数组
L 对象类型
java.lang.String;对象的标准类名
7b1d7fff 内部的hashcode

所以正题来了,怎么打印数组内容呢?

a. 循环打印

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

emm,打印输出的东西:

b. Arrays打印

import java.util.Arrays;
...
System.out.println(Arrays.toString(today));

这个打印的就舒服一点:

#二维数组

1. 定义

声明:类型[][] 名称;

2. 元素

二维数组的意思就是在一维数组里面存入另一个数组,就是

int[][] tomorrow = {{1,2,3},{4,5,6}};
类型[][] 名称 = {数组1, 数组2, 数组…,数组n}

像这样,有没有很酷呢?

但是由于每个二维数组中有多个一维数组,而每个数组都是一个对象,所以对于二维数组,我们又不能用Arrays来进行打印操作了,我们只能使用双重循环来进行打印输出这个二维数组。

// 以tomorrow的长度为终止条件
for (int i = 0; i < tomorrow.length; i++) {
// 以第i个数组的长度为终止条件
for (int j = 0; j < tomorrow[i].length; j++) {
// 输出每个值
System.out.print(tomorrow[i][j]);
}
// 换行
System.out.println();
}

#多维数组

在一维数组里放一维数组,就变成二维数组了,在二维数组放二维数组就是三维数组了||ヽ(* ̄▽ ̄*)ノミ|Ю

多维数组大家都知道咋办了吧ε=(´ο`*)))

int[][][] three = {{{1,2,3},{4,5,6}},{{7,8,9},{0,1,2}}};

打印也是和二维数组一样:

for (int i = 0; i < three.length; i++) {
for (int j = 0; j < three[i].length; j++) {
for (int j2 = 0; j2 < three[i][j].length; j2++) {
System.out.print(three[i][j][j2]);
}
System.out.println();
}
}
------------------------------------------------------------

以上,阿里嘎多,20190417 from ahanwhite。

Java基础(9)——数组的更多相关文章

  1. Java基础-反转数组

    /** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...

  2. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  3. java基础(十) 数组类型

    1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...

  4. java 基础概念 -- 数组与内存控制

    问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...

  5. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

  6. Java基础总结--数组

    ---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...

  7. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)

    遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...

  8. Java基础之数组类型

    对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...

  9. 黑马程序员——JAVA基础之数组

    ------- android培训.java培训.期待与您交流! ---------- 数组: 数组的定义: 数组是相同类型数据的集合, 描述的是相同类型的若干个数据按照一定的先后顺序排列组合而成,其 ...

  10. Java基础从数组到集合之间关键字的区别!!!!

    1.&& 和 &区别和联系: 相同点 : 结果是一样的.       不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...

随机推荐

  1. ibatis遍历数组:ParameterObject or property was not a Collection, Array or Iterator.

    这个问题在使用ibatis的<iterate></iterate>时出现的,很简单,但是蛋疼了很久,记下来 首先从错误提示看,明显意思是你给出ibatis的参数不对路,人家不认 ...

  2. 基于KMP与Levenshtein模糊匹配算法的银行联行号查询

    在人民银行那里,每个银行的每一个营业网点都有自己唯一的银行联行号,根据这个号码能快速定位一间银行具体的分支行,就像根据一个身份证号码能快速确定一个人一样.例如汇款时,汇款单上要求填写收款人开户行,然后 ...

  3. dbproxy-main函数

    main主函数 /home/id/lua.lua/home/id/lua-c/lua.lua/home/id/lua-c/metatable.lua/home/id/lua-c/1.lua int m ...

  4. Kettle入门及性能优化FAQ

    1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...

  5. Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程

    注意:如果是在ubuntu桌面版本上使用,图形化控制与ifupdown配置不兼容.如果使用ifupdown来配置,需要禁止使用图形化控制. 本文经过本人结合网络内容亲身实践,配置通了ifupdown ...

  6. Ubuntu16.04安装视觉SLAM环境(ceres-solver)

    1.先在github上下载ceres-solver git clone https://github.com/ceres-solver/ceres-solver.git 2.安装ceres-solve ...

  7. sqlalchemy 常用总结

    mysql-5.7安装 https://blog.csdn.net/since_1904/article/details/70233403 flask-sqlalchemy教程 http://www. ...

  8. 【算法笔记】B1034 有理数四则运算

    1034 有理数四则运算 (20 分)   本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母 ...

  9. SQL的CharIndex用法

    和C#一样判断一个字符串中是否包含另一个字符串举例1:select charindex('test','This Test is test!!')->返回 6 (空格也算一个 下标从1开始)2: ...

  10. [转] crontab命令

    [From] http://man.linuxde.net/crontab   当前位置:首页 » 系统管理 » crontab crontab命令 crontab命令被用来提交和管理用户的需要周期性 ...