登录网站体验更好 微信扫码登录

【JAVA学习笔记】第二章阵列与列表

作者:  时间:2021/03/16 热度:556

学习重点

一维阵列多维阵列(阵列内含有阵列,形成多层结构)列表(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#

欢迎关注公众号

相关标签:
发表您的观点

还没有留言,来占领沙发吧!
Analytics

微信扫码登录网站