Java基础(9)——数组
难点儿的已经过去啦,现在又开始基础了哈~
之前讲变量的时候,变量是一个个的呀~,那我要搞一串变量该啷个办呢?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)——数组的更多相关文章
- Java基础-反转数组
/** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- java基础(十) 数组类型
1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- Java基础之数组类型
对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...
- 黑马程序员——JAVA基础之数组
------- android培训.java培训.期待与您交流! ---------- 数组: 数组的定义: 数组是相同类型数据的集合, 描述的是相同类型的若干个数据按照一定的先后顺序排列组合而成,其 ...
- Java基础从数组到集合之间关键字的区别!!!!
1.&& 和 &区别和联系: 相同点 : 结果是一样的. 不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...
随机推荐
- ibatis遍历数组:ParameterObject or property was not a Collection, Array or Iterator.
这个问题在使用ibatis的<iterate></iterate>时出现的,很简单,但是蛋疼了很久,记下来 首先从错误提示看,明显意思是你给出ibatis的参数不对路,人家不认 ...
- 基于KMP与Levenshtein模糊匹配算法的银行联行号查询
在人民银行那里,每个银行的每一个营业网点都有自己唯一的银行联行号,根据这个号码能快速定位一间银行具体的分支行,就像根据一个身份证号码能快速确定一个人一样.例如汇款时,汇款单上要求填写收款人开户行,然后 ...
- 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 ...
- Kettle入门及性能优化FAQ
1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...
- Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程
注意:如果是在ubuntu桌面版本上使用,图形化控制与ifupdown配置不兼容.如果使用ifupdown来配置,需要禁止使用图形化控制. 本文经过本人结合网络内容亲身实践,配置通了ifupdown ...
- Ubuntu16.04安装视觉SLAM环境(ceres-solver)
1.先在github上下载ceres-solver git clone https://github.com/ceres-solver/ceres-solver.git 2.安装ceres-solve ...
- sqlalchemy 常用总结
mysql-5.7安装 https://blog.csdn.net/since_1904/article/details/70233403 flask-sqlalchemy教程 http://www. ...
- 【算法笔记】B1034 有理数四则运算
1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母 ...
- SQL的CharIndex用法
和C#一样判断一个字符串中是否包含另一个字符串举例1:select charindex('test','This Test is test!!')->返回 6 (空格也算一个 下标从1开始)2: ...
- [转] crontab命令
[From] http://man.linuxde.net/crontab 当前位置:首页 » 系统管理 » crontab crontab命令 crontab命令被用来提交和管理用户的需要周期性 ...