13.3.2 List接口的常用子类(2)
(2)实例操作二:删除元素
在类集中提供了专门的删除元素的方法,Collection和List接口都分别定义了删除数据的方法。
Collection定义的方法
每次删除一个对象:public boolean remove(Object o)。
每次删除一组对象:public boolean removeAll(Collection<?> c)。
List扩展的方法
删除指定位置的元素:public E remove(int index)。
范例:删除对象
- package org.lxh.demo13.listdemo;
- import java.util.ArrayList;
- import java.util.List;
- public class ArrayListDemo02 {
- public static void main(String[] args) {
- List<String> allList = null ;
// 声明List对象- allList = new ArrayList<String>();
- // 实例化List对象,只能是String
- 类型
- allList.add("Hello");
- // 增加元素
- allList.add(0, "World");
// 此方法为List扩展的增加方法- allList.add("MLDN");
- // 增加元素
- allList.add("www.mldn.cn");
// 增加元素- allList.remove(0);
// 删除指定位置的元素- allList.remove("Hello");
// 删除指定内容的元素- System.out.println(allList);
- // 输出对象,调用toString()方法
- }
- }
程序运行结果:
- [MLDN, www.mldn.cn]
在集合中增加完数据后,可以通过下标或对象的方式直接对集合中的元素进行删除。
U提示:关于使用remove(Object o)方法删除对象的说明。
在集合中可以插入任意类型的对象,在本程序中是以String类的对象为例,所以在使用remove(Object o)方法删除时可以直接删除;而对于自定义的类如果要通过此种方式删除,则必须在类中覆写Object类的equals()及hashCode()方法。这两个方法的使用在随后的章节中将为读者介绍。
(3)实例操作三:输出List中的内容
在Collection接口中定义了取得全部数据长度的方法size(),而在List接口中存在取得集合中指定位置元素的操作get(int index),使用这两个方法即可输出集合中的全部内容。
范例:输出全部元素
- package org.lxh.demo13.listdemo;
- import java.util.ArrayList;
- import java.util.List;
- public class ArrayListDemo03 {
- public static void main(String[] args) {
- List<String> allList = null ;
// 定义List接口对象- allList = new ArrayList<String>();
- // 实例化List对象,只
- 能是String类型
- allList.add("Hello");
- // 增加元素
- allList.add("Hello");
- // 增加元素
- allList.add(0, "World");
// 增加元素- allList.add("MLDN");
- // 增加元素
- allList.add("www.mldn.cn");
// 增加元素- System.out.print("由前向后输出:");
// 信息输出- for (int i = 0; i < allList.size(); i++) {
// 循环输出集合内容- System.out.print(allList.get(i) + "、");
// 通过下标取得集合中- 的元素
- }
- System.out.print("/n由后向前输出:");
- for (int i = allList.size() - 1; i >=
0; i--) {// 循环输出集合内容- System.out.print(allList.get(i) +
"、"); // 通过下标取得集合中- 的元素
- }
- }
- }
程序运行结果:
- 由前向后输出:World、Hello、Hello、MLDN、www.mldn.cn、
- 由后向前输出:www.mldn.cn、MLDN、Hello、Hello、World、
从程序的运行结果中可以看出,在List集合中数据增加的顺序就是输出后的顺序,本身顺序不会发生改变。
(4)实例操作四:将集合变为对象数组
在Collection中定义了toArray()方法,此方法可以将集合变为对象数组,但是由于在类集声明时已经通过泛型指定了集合中的元素类型,所以在接收时要使用泛型指定的类型。
范例:将集合变为对象数组
- package org.lxh.demo13.listdemo;
- import java.util.ArrayList;
- import java.util.List;
- public class ArrayListDemo04 {
- public static void main(String[] args) {
- List<String> allList = null ;
// 声明List对象- allList = new ArrayList<String>();
- // 实例化List对象,只能是
- String类型
- allList.add("Hello");
- // 增加元素
- allList.add(0, "World");
// 增加元素- allList.add("MLDN");
- // 增加元素
- allList.add("www.mldn.cn"); // 增加元素
- String str[] = allList.toArray(new String[]
{}); // 指定的泛型类型- System.out.print("指定数组类型:");
// 信息输出- for (int i = 0; i < str.length; i++) {
// 输出字符串数组中的内容- System.out.print(str[i] + "、");
// 输出每一个元素- }
- System.out.print("/n返回对象数组:");
// 信息输出- Object obj[] = allList.toArray();
// 直接返回对象数组- for (int i = 0; i < obj.length; i++) {
// 循环输出对象数组内容- String temp = (String) obj[i];
// 每一个对象都是String类- 型实例
- System.out.print(temp + "、");
// 输出每一个元素- }
- }
- }
程序运行结果:
- 指定数组类型:World、Hello、MLDN、www.mldn.cn、
- 返回对象数组:World、Hello、MLDN、www.mldn.cn、