学习重点
一维阵列多维阵列(阵列内含有阵列,形成多层结构)列表(java.util.ArrayList类)阵列的宣告
int [] id;//宣告阵列名称为id &资料型态为int
id = new int[3];//确保阵列能保存的内容数
也可以写成一行
int [] id = new int[3];
也可以直接指定内容
int [] id = {1,2,3};
或是利用index值填入资料如下:
id[0] = 1;
id[1] = 2;
id[2] = 3;
在阵列的第一个位置填入1,第二个位置填入2,第三个位置填入3
用length方法调查阵列长度
int size = id.length;
此案例的size会等于3
建立Sample2_1.java练习看看
编译后执行,可能会发现"str的长度为:"这行变成乱码
这是因为CMD环境的编码不一致
如果只想暂时性改变CMD环境编码,可使用以下指令
chcp 950
※chcp = chang code page。950是繁体中文的号码,utf-8则是65001。
此设定在关闭画面之后就会恢复为预设值。
疑问:不知道为什么,编译时用utf-8编译,CMD环境也设为utf-8,执行时中文却还是显示乱码。非得设成繁体中文才行。(使用指令chcp 950)
如果想永久修改CMD环境编码
1.Win+R,输入regedit开启登录档编辑器
2.找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
3.右键新建一个字串值(S),取名叫Autorun,值设为@chcp 950>nul
延伸1-阵列预设值
建立Sample2_2.java
以上的代码由于i虽然被宣告了,但里面没有值所以会报错。
把以下这行注解掉再试一次
//System.out.println("i的值为:" + i);
会发现array[0]虽然没有指定值,但是自动被预设为0了。
这是因为在new一个阵列时,会先自动填入预设值。
多维阵列
建立Sample2_3.java档案并写入以下内容
依照下面的步骤将java档编译后执行,就跟之前做的一样。
如果怕忘记或找不到指令,可以用记事本记起来。
cd C:\Users\userXXX\Desktop\java //移动到案件资料夹
javac -encoding utf-8 Sample2_3.java //编译(使用utf-8以避免中文乱码)
java Sample2_3 //执行
基本上多维阵列的概念就跟windows的资料夹一样,
每个资料夹里面都可能还有不定数量的资料夹或档案。
再看一个范例:
这个示例说明了创建数组时,不一定要一次把所有条件都指定好。而且每个数组的长度也可以不一样。可以先规定好数组的大小后,一一赋值,也可以直接创立数组并赋值。本案例就用了/*和* /符号把一开始三行的代码注释掉。直接创立数组并赋值.
列表
JAVA利用java.util.ArrayList类实现了可变长的列表功能。
方才的阵列长度是固定不可变的,例如:
这行程式码就确保了记忆体中,预留了3个保存int资料的空间。不能增加也不能减少。
但ArrayList类可以。
工具类
JAVA里面有很多既有的工具类可使用,ArrayList类就是其中一种。要使用这些工具,需要先import。
像是把工具从仓库拿到工作台来一样。
ArrayList的使用流程如下:
import java.util.ArrayList; //载入类ArrayList array; //宣告listarray = new ArrayList(3); //确保领域,变数名= new ArrayList<资料形式>(初期大小)array.add("Tom"); //用add方法赋值String name = array.get(0); //用get方法取值可以发现这边赋值和取值的方式和阵列不一样,
在JAVA的工具类中,每个类都有自己的使用方法,不会用的时候就用关键字google吧。
基本资料类型与物件
在新增一个ArrayList时,<>内只能存放物件,不能放int,double等基本资料型态。
像下面这行程式码因为放了int就会报错:
为了解决这个问题,JAVA有提供一些物件来包覆基本资料型态如下表:
利用cast指定资料类型
利用get方法取出资料时,JAVA会自动检查来源与目标的资料型态是否可以互换。
如果无法确认来源资料是什么类型,就会在编译时报错。如下例:
由于无法确认array里面会拿出什么东西来,所以报错,应修改成下面的样子:
int num = (Integer)array.get(0);
利用()来指定资料型态,像是过海关一定要填申报单一样。
省略写法
新建ArrayList的时候,左右都要重复写一次资料类型很麻烦,
所以在JAVA SE7版本之后,右边的资料类型可以省略不写。如下例:
引数的使用
在CMD画面执行指令的时候,可以在指令后面给予引数,告诉电脑一些额外资讯。例如档案路径也是引数的一种。
https://imgur.com/UI0L2Vh
在执行「java」这个指令时,第一个引数会被当成要执行的路径或档案名称,
第二个以后的引数则会被传进执行的程式里,保存在String[] args列表里面。
我们可以在程式里对这些引数做一些处理。处理完的结果就跟上图一样。
※JAVA里的引数预设被保存为String形式,如果要转换成数字,可以使用以下方法
int num = Integer.parseInt(args[0]);
在CMD画面里有许多可以直接使用的指令,这些指令常常会需要搭配引数来使用。
我们也可以自己写指令,就如同Sample2_5一样,自己定义指令后面的各个引数该如何被使用。
以上是第二章阵列与列表的学习纪录
下一章会讲演算子与分歧文(if)
#Java#
欢迎关注公众号
发表您的观点