ArrayList - 测试类
ArrayList常用API补充
package ArrayList_UtilityClass;
import java.util.ArrayList;
/**
* ArrayList测试类
*
* 集合只能存储引用数据类型,属于顺序结构,其特点是查询快,增删慢,线程不安全但效率高
*
* ArrayList类常用方法
*
* 快捷键生成变量接收值的三种方式:alt + enter 或者 ctrl + alt + v 或者 代码.var + enter
*
* 快捷键输出某变量或Object的值:代码.sout + enter
*
* 代码格式标准化:ctrl + alt + L
*
* 快捷键导入需要的包:alt + shift + enter
*/
public class ArrayListTest {
public static void main(String[] args) {
// 实例化工具详解类
ExplainArrayListAPI eal = new ExplainArrayListAPI();
ArrayList arrList = new ArrayList();
// 将指定元素添加到此列表的末尾
arrList.add("This is a ArrayList");
arrList.add("A");
arrList.add("B");
arrList.add("D");
System.out.println("当前列表元素:" + arrList.toString());
System.out.println("--------------------------------------------------");
// 将指定元素插入到列表中的指定位置(位置从1开始,下标从0开始)
arrList.add(3, "C");
System.out.println("在列表的 3 位置后插入元素C:" + arrList.toString());
System.out.println("ArrayList的下标从 0 开始,列表的第 0 个元素为:" + arrList.get(0));
System.out.println("--------------------------------------------------");
// 将另一个集合(列表)中的所有元素添加至当前列表
ArrayList numList = new ArrayList();
numList.add("10086"); // 中国移动客服电话
numList.add("10010"); // 中国联通客服电话
numList.add("10000"); // 中国电信客服电话
arrList.addAll(numList);
System.out.println("(A - 末尾)添加新元素后的当前列表元素:" + arrList.toString());
// 将另一个集合(列表)中的所有元素添加至当前列表的指定位置
arrList.addAll(0, numList);
System.out.println("(B - 开头)添加新元素后的当前列表元素:" + arrList.toString());
System.out.println("--------------------------------------------------");
// 返回当前列表实例的浅表副本(浅克隆)
ArrayList cloneList = (ArrayList) arrList.clone();
System.out.println("列表对象浅克隆:" + cloneList.toString());
String test = cloneList.get(0); // 获取列表中的第0个元素
test.concat("abc");
System.out.println("第 0 个元素:" + test + "合并 abc 后的结果为:" + cloneList.get(0));
System.out.println("\n列表元素深克隆:");
eal.ExplainDeepClone();
System.out.println("--------------------------------------------------");
// 判断列表中是否包含某个值
System.out.println("当前列表是否包含10086:" + arrList.contains("10086"));
System.out.println("--------------------------------------------------");
// 列表扩容
eal.ExplainEnsureCapacity();
System.out.println("--------------------------------------------------");
// 获取列表中指定位置的值
String statement = arrList.get(3);
System.out.println("列表 3 下标处的元素为:" + statement);
System.out.println("--------------------------------------------------");
// 返回列表中首次出现指定元素的下标,未找到则返回-1
int indexA = arrList.indexOf("A");
System.out.println("元素 A 在列表中的下标为(indexOf):" + indexA);
// 返回列表中最后一次出现指定元素的下标,未找到则返回-1
int index_6 = arrList.lastIndexOf("10086");
System.out.println("元素 10086 在列表中的下标为(lastIndexOf):" + index_6);
System.out.println("--------------------------------------------------");
// 判断列表是否为空
boolean emptyFlag = arrList.isEmpty();
System.out.println("列表是否为空(true - 空;false - 非空):" + emptyFlag);
System.out.println("--------------------------------------------------");
// 删除列表中指定下标处的元素
String remove_3 = arrList.remove(3);
System.out.println("已删除列表中 3 下标处的元素 - " + remove_3);
// 删除列表中首次出现的某个元素
boolean removeFlag = arrList.remove("10086");
System.out.println("删除列表中首次出现某个元素的结果:" + removeFlag);
eal.ListElementPresentation(arrList);
// 范围内元素删除(反射时可用)
// 删除集合中的所有元素
boolean removeAllFlag = arrList.removeAll(arrList);
System.out.println("删除列表中所有元素的执行结果:" + removeAllFlag);
eal.ListElementPresentation(arrList);
System.out.println("--------------------------------------------------");
// 用指定元素代替指定位置上的元素
arrList.add("A");
arrList.add("B");
arrList.add("C");
arrList.add("D");
arrList.add("E");
eal.ListElementPresentation(arrList);
arrList.set(2, "S"); // 将下标为2的值替换成S
System.out.println("(重新)设置列表 2 下标处元素的值:");
eal.ListElementPresentation(arrList);
System.out.println("--------------------------------------------------");
// 获取此列表的长度(规格)
System.out.println("当前列表的长度为:" + arrList.size());
System.out.println("--------------------------------------------------");
// 将列表中的元素存入数组
Object[] objArr = arrList.toArray();
eal.ArrayElementTraversal(objArr);
System.out.println("--------------------------------------------------");
// 将列表实例的容量调整为列表的当前大小
System.out.println("将列表实例的容量调整为列表的当前大小:");
arrList.trimToSize();
eal.ListElementPresentation(arrList);
}
}
ArrayList - 测试类方法封装
package JavaCommonUtilityClasses;
import JavaCommonUtilityClasses.domain.Singer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* 详解Java工具类ArrayList常用API
*/
public class ExplainArrayListAPI {
/**
* 数组元素遍历
*
* @param obj
*/
public void ArrayElementTraversal(Object[] obj) {
System.out.print("当前数组元素:");
for (int i = 0; i < obj.length; i++) {
System.out.print(obj[i] + " ");
}
System.out.println();
} // ArrayElementTraversal结束
/**
* 列表元素展示
*
* @param collection
*/
public void ListElementPresentation(Collection collection) {
if (collection.size() > 0) {
System.out.print("列表元素:");
for (Object obj : collection) {
System.out.print(obj + " ");
}
System.out.println();
} else {
System.out.println("提示:当前集合中无任何元素!");
}
} // ListElementPresentation方法结束
/**
* 详解列表元素扩容 - void ensureCapacity(int minCapacity)
*/
public void ExplainEnsureCapacity() {
ArrayList
ArrayList - 方法封装所需的实体类
package JavaCommonUtilityClasses.domain;
/**
* 方法封装所需的Singer实体类
*/
public class Singer {
private String name;
private char gender;
private int age;
public Singer() {
}
public Singer(String name, char gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", gender=" + gender +
", age=" + age +
'}';
}
}
运行示范
当前列表元素:[This is a ArrayList, A, B, D]
--------------------------------------------------
在列表的 3 位置后插入元素C:[This is a ArrayList, A, B, C, D]
ArrayList的下标从 0 开始,列表的第 0 个元素为:This is a ArrayList
--------------------------------------------------
(A - 末尾)添加新元素后的当前列表元素:[This is a ArrayList, A, B, C, D, 10086, 10010, 10000]
(B - 开头)添加新元素后的当前列表元素:[10086, 10010, 10000, This is a ArrayList, A, B, C, D, 10086, 10010, 10000]
--------------------------------------------------
列表对象浅克隆:[10086, 10010, 10000, This is a ArrayList, A, B, C, D, 10086, 10010, 10000]
第 0 个元素:10086合并 abc 后的结果为:10086
列表元素深克隆:
原列表中的元素:
Student{name='李荣浩', gender=男, age=35}
Student{name='杨丞琳', gender=女, age=36}
经深克隆后列表中的元素:
Student{name='李荣浩', gender=男, age=35}
Student{name='邢晗铭', gender=女, age=19}
--------------------------------------------------
当前列表是否包含10086:true
--------------------------------------------------
未使用ensureCapacity()对列表进行扩容前的时间耗费:5
使用ensureCapacity()对列表进行扩容后的时间耗费:2
--------------------------------------------------
列表 3 下标处的元素为:This is a ArrayList
--------------------------------------------------
元素 A 在列表中的下标为(indexOf):4
元素 10086 在列表中的下标为(lastIndexOf):8
--------------------------------------------------
列表是否为空(true - 空;false - 非空):false
--------------------------------------------------
已删除列表中 3 下标处的元素 - This is a ArrayList
删除列表中首次出现某个元素的结果:true
列表元素:10010 10000 A B C D 10086 10010 10000
删除列表中所有元素的执行结果:true
提示:当前集合中无任何元素!
--------------------------------------------------
列表元素:A B C D E
(重新)设置列表 2 下标处元素的值:
列表元素:A B S D E
--------------------------------------------------
当前列表的长度为:5
--------------------------------------------------
当前数组元素:A B S D E
--------------------------------------------------
将列表实例的容量调整为列表的当前大小:
列表元素:A B S D E
文章到此就结束了,关于Java工具类ArrayList的常用API,你有get到嘛?
怕什么真理无穷,进一步自有进一步的欢喜!(^ - ^)
加油,咱们最高处见~