还记得前两天我们在介绍阵列的时候,有说到需要给他固定的长度,若超过就需要宣告一个新的更大的阵列吗?那有什麽办法让他可以动态改变大小呢?这时候就要介绍集合类别 ArrayList。
宣告方式:
ArrayList<元素型别> ArrayList名称 = new ArrayList<元素型别>();
元素型别类似於宣告阵列时需要定他的资料型态,但这里只能使用非资本型态,像是 String。不过很幸运的是,Java提供「装箱」的服务,若我们要宣告一个储存 integer 的 ArrayList 来储存整数,将整数值放置到 ArrayList 当中,就会被包装为整数物件,以下是各个基本型态转换成包装类别(Wrapper Class):
基本型态 | 包装类别 |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
那 ArrayList 要怎麽运用呢?以下是一些常见的方法:
方法 | 说明 |
---|---|
add | 在 ArrayList 最後加一笔元素 |
clear | 移除 ArrayList 所有元素 |
contains | 如果 ArrayList 含有指定的元素回传 true,否为 false |
get | 传回位於指定索引值的元素 |
indexof | 传回指定元素在 ArrayList 第一次出现的索引值 |
remove | 会移除第一次出现指定值的元素,或是指定索引值的元素 |
size | 传回 ArrayList 中储存元素的数量 |
trimToSize | 将 ArrayList 容量缩减至目前元素数量 |
以下就从范例中观看个方法如何使用:
import java.util.ArrayList;
public class ArrayListCollection {
public static void main(String[] args){
ArrayList<String> Students = new ArrayList<String>();
Students.add("Betty");
Students.add(0, "Alan");
System.out.print("First student list:");
for(String student : Students){
System.out.printf(" %s", student);
}
System.out.println();
Students.add("Jane");
Students.add("Betty");
System.out.print("Second student list:");
for(String student : Students){
System.out.printf(" %s", student);
}
System.out.println();
Students.remove("Betty");
System.out.print("Third student list:");
for(int i = 0 ; i < Students.size() ; i++){
System.out.printf(" %s", Students.get(i));
}
System.out.println();
Students.remove(1);
System.out.print("Forth student list:");
for(int i = 0 ; i < Students.size() ; i++){
System.out.printf(" %s", Students.get(i));
}
System.out.println();
if(Students.contains("Jane")){
System.out.println("Contain Jane.");
}
else{
System.out.println("Not contain Jane.");
}
}
}
First student list: Alan Betty
Second student list: Alan Betty Jane Betty
Third student list: Alan Jane Betty
Forth student list: Alan Betty
Not contain Jane.
实做完应该就发现他其实不难(应该啦!),这三天我们学了很多关於阵列的基本概念,接下来几天我们就要来实际应用他了!
<<: Day 0xC UVa10170 The Hotel with Infinite Rooms
讲了好几天的数字的用法,今天再来讲一个数字的语法 那就是Math.sqrt( ) 那这个是什麽呢,前...
BPMN (Business Process Model and Notation) 也是一个用来做...
由於老师的成绩分级档案需要能自动送交学校教务处, 因此,我们就来设计一个可以自动将档案附在Email...
灵异现象 - 怎麽大家都能改阿 灵异现象 故事主角:小新 小新的 IT 同事小王最近转部门跑去做 R...