List接口的常用子类(2)

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)。

范例:删除对象

 
 
  1. package org.lxh.demo13.listdemo;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. public class ArrayListDemo02 {  
  5.     public static void main(String[] args) {  
  6.         List<String> allList = null ;      
    // 声明List对象  
  7.         allList = new ArrayList<String>();  
  8. // 实例化List对象,只能是String  
  9. 类型  
  10.         allList.add("Hello");  
  11.             // 增加元素  
  12.         allList.add(0"World");           
    // 此方法为List扩展的增加方法  
  13.         allList.add("MLDN");  
  14.             // 增加元素  
  15.         allList.add("www.mldn.cn");      
    // 增加元素  
  16.         allList.remove(0);                
    // 删除指定位置的元素  
  17.         allList.remove("Hello");         
    // 删除指定内容的元素  
  18.         System.out.println(allList);  
  19.     // 输出对象,调用toString()方法  
  20.     }  

程序运行结果:

 
 
  1. [MLDN, www.mldn.cn] 

在集合中增加完数据后,可以通过下标或对象的方式直接对集合中的元素进行删除。

U提示:关于使用remove(Object o)方法删除对象的说明。

在集合中可以插入任意类型的对象,在本程序中是以String类的对象为例,所以在使用remove(Object o)方法删除时可以直接删除;而对于自定义的类如果要通过此种方式删除,则必须在类中覆写Object类的equals()及hashCode()方法。这两个方法的使用在随后的章节中将为读者介绍。

(3)实例操作三:输出List中的内容

在Collection接口中定义了取得全部数据长度的方法size(),而在List接口中存在取得集合中指定位置元素的操作get(int index),使用这两个方法即可输出集合中的全部内容。

范例:输出全部元素

 
 
  1. package org.lxh.demo13.listdemo;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. public class ArrayListDemo03 {  
  5.     public static void main(String[] args) {  
  6.         List<String> allList = null ;           
    // 定义List接口对象  
  7.         allList = new ArrayList<String>();  
  8.             // 实例化List对象,只  
  9. 能是String类型  
  10.         allList.add("Hello");  
  11.                         // 增加元素  
  12.         allList.add("Hello");  
  13.                         // 增加元素  
  14.         allList.add(0"World");               
    // 增加元素  
  15.         allList.add("MLDN");  
  16.                         // 增加元素  
  17.         allList.add("www.mldn.cn");                
    // 增加元素  
  18.         System.out.print("由前向后输出:");           
    // 信息输出  
  19.         for (int i = 0; i < allList.size(); i++) {   
    // 循环输出集合内容  
  20.             System.out.print(allList.get(i) + "、"); 
    // 通过下标取得集合中  
  21. 的元素  
  22.         }  
  23.         System.out.print("/n由后向前输出:");  
  24.         for (int i = allList.size() - 1; i >= 
    0; i--) {// 循环输出集合内容  
  25.             System.out.print(allList.get(i) + 
    "、"); // 通过下标取得集合中  
  26. 的元素  
  27.         }  
  28.     }  

程序运行结果:

 
 
  1. 由前向后输出:World、Hello、Hello、MLDN、www.mldn.cn、  
  2. 由后向前输出:www.mldn.cn、MLDN、Hello、Hello、World、 

从程序的运行结果中可以看出,在List集合中数据增加的顺序就是输出后的顺序,本身顺序不会发生改变。

(4)实例操作四:将集合变为对象数组

在Collection中定义了toArray()方法,此方法可以将集合变为对象数组,但是由于在类集声明时已经通过泛型指定了集合中的元素类型,所以在接收时要使用泛型指定的类型。

范例:将集合变为对象数组

 
 
  1. package org.lxh.demo13.listdemo;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. public class ArrayListDemo04 {  
  5.     public static void main(String[] args) {  
  6.         List<String> allList = null ;             
    // 声明List对象  
  7.         allList = new ArrayList<String>();  
  8.         // 实例化List对象,只能是  
  9. String类型  
  10.         allList.add("Hello");  
  11.                     // 增加元素  
  12.         allList.add(0"World");                
    // 增加元素  
  13.         allList.add("MLDN");  
  14.                     // 增加元素  
  15.         allList.add("www.mldn.cn");                 // 增加元素  
  16.         String str[] = allList.toArray(new String[]
    {}); // 指定的泛型类型  
  17.         System.out.print("指定数组类型:");       
    // 信息输出  
  18.         for (int i = 0; i < str.length; i++) {     
    // 输出字符串数组中的内容  
  19.             System.out.print(str[i] + "、");    
    // 输出每一个元素  
  20.         }  
  21.         System.out.print("/n返回对象数组:");     
    // 信息输出  
  22.         Object obj[] = allList.toArray();       
    // 直接返回对象数组  
  23.         for (int i = 0; i < obj.length; i++) {  
    // 循环输出对象数组内容  
  24.             String temp = (String) obj[i];      
    // 每一个对象都是String类  
  25. 型实例  
  26.             System.out.print(temp + "、");      
    // 输出每一个元素  
  27.         }  
  28.     }  

程序运行结果:

 
 
  1. 指定数组类型:World、Hello、MLDN、www.mldn.cn、  
  2. 返回对象数组:World、Hello、MLDN、www.mldn.cn、 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值