前两天学习到了ArrayList,那么在此写一篇帖子用来记述 1.什么是ArrayList
ArrayList就是传说中的动态数组,就是Array的复杂版本,用它主要有以下的好处:
- 可以动态的增加和减少元素
- 灵活的设置数组大小
- 实现了Icollection和List接口(目前还没学习到)
我们都用过数组,知道数组的长度是静态的,也就是一旦定义好,就无法更改,那么就会有一些局限性。
ArrayList恰好解决了这一问题。在我们知道有多少数据元素时候,可以用数组,如果不知道元素的具体数量
那么久可以使用ArrayList了
2.Array的创建
举例来说,如果你要创建一个空的数组链表,用来存放String类型的对象,那么你可以像下面这样做:
ArrayList<String> list = new ArrayList<String>(); 注意:ArrayList类只支持对象类型,不支持 基础数据类型。就是说ArrayList对象只能存放对象,不能存放基础数据类型的数据。 ArrayList<String> list = new ArrayList<String>(){}; list .add("str01"); list .add("str02"); 3.Array的常用方法
添加:add(); 删除:remove(int index); 获取某一元素:get(int index); 判断是否为空:isEmpty();
获取list长度:size(); 4.Array的常用方法 [Java] 纯文本查看 复制代码 import java.util.*;
public class ArrayListExamples {
public static void main(String args[]) {
// 创建一个空的数组链表对象list,list用来存放String类型的数据
ArrayList<String> list = new ArrayList<String>();
// 增加元素到list对象中
list.add("Item1");
list.add("Item2");
list.add(2, "Item3"); // 此条语句将会把“Item3”字符串增加到list的第3个位置。
list.add("Item4");
// 显示数组链表中的内容
System.out.println("The arraylist contains the following elements: "
+ list);
// 检查元素的位置
int pos = list.indexOf("Item2");
System.out.println("The index of Item2 is: " + pos);
// 检查数组链表是否为空
boolean check = list.isEmpty();
System.out.println("Checking if the arraylist is empty: " + check);
// 获取链表的大小
int size = list.size();
System.out.println("The size of the list is: " + size);
// 检查数组链表中是否包含某元素
boolean element = list.contains("Item5");
System.out
.println("Checking if the arraylist contains the object Item5: "
+ element);
// 获取指定位置上的元素
String item = list.get(0);
System.out.println("The item is the index 0 is: " + item);
// 遍历arraylist中的元素
// 第1种方法: 循环使用元素的索引和链表的大小
System.out
.println("Retrieving items with loop using index and size list");
for (int i = 0; i < list.size(); i++) {
System.out.println("Index: " + i + " - Item: " + list.get(i));
}
// 第2种方法:使用foreach循环
System.out.println("Retrieving items using foreach loop");
for (String str : list) {
System.out.println("Item is: " + str);
}
// 第三种方法:使用迭代器
// hasNext(): 返回true表示链表链表中还有元素
// next(): 返回下一个元素
System.out.println("Retrieving items using iterator");
for (Iterator<String> it = list.iterator(); it.hasNext();) {
System.out.println("Item is: " + it.next());
}
// 替换元素
list.set(1, "NewItem");
System.out.println("The arraylist after the replacement is: " + list);
// 移除元素
// 移除第0个位置上的元素
list.remove(0);
// 移除第一次找到的 "Item3"元素
list.remove("Item3");
System.out.println("The final contents of the arraylist are: " + list);
// 转换 ArrayList 为 Array
String[] simpleArray = list.toArray(new String[list.size()]);
System.out.println("The array created after the conversion of our arraylist is: "
+ Arrays.toString(simpleArray));
}
} 5.注意事项 若使用for循环遍历ArrayList,推荐倒序的方式遍历,由于ArrayList的长度是动态的, 那么如果在使用for正向遍历时删除某一元素,那么ArrayList会将剩余元素重新组合新的 ArrayList,这样就导致遍历时会少遍历一些数据,所以建议倒序遍历
|