List接口

掌握List接口与collection接口关系。

掌握List接口常用子类:ArrayList,Vector

掌握ArrayList和Vector类区别。

 

List是collection接口子类,里面可以存放各个重复数据。定义如下:

public interface List<E>   extends Collection<E>

List扩展方法:

List接口比collection强大很多,因为大量扩充了Collection方法。

 

如果要使用接口,则肯定要使用对象的多态性进行实例化操作,那么对于 List接口本身也是一样。

ArrayList是List最常用子类。   

实例操作1,向集合增加元素。

package 类集;
import java.util.Collection;
import java.util.ArrayList ;
import java.util.List ;
 
 public class test1{
     public static void main(String args[]){
         List<String> allList = null ;
         Collection<String> allCollection = null ;
         allList = new ArrayList<String>() ;    // 指定操作的泛型为String
         allCollection = new ArrayList<String>() ;    // 指定一个集合
         
         allList.add("Hello") ;    // 此方法由Collection接口而来
         allList.add(0,"World") ;    // 在第一个位置上添加新的内容
         System.out.println(allList) ;
         
         allCollection.add("LXH") ;    // 向Collection中加入内容
         allCollection.add("www.mldn.cn") ;
         
         allList.addAll(allCollection) ;//向allList加入allCollection内容
         allList.addAll(0,allCollection) ;//向allList开头加入allCollection内容
         
         System.out.println(allList) ;
         System.out.println(allCollection) ;
     }
 }; 

删除操作:

remove(index)删除指定位置内容

remove(element) 删除指定内容

package 类集;
import java.util.ArrayList ;
import java.util.List ;
public class test1{
    public static void main(String args[]){
        List<String> allList = null ;
        allList = new ArrayList<String>() ;    // 指定操作的泛型为String
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add(0,"World") ;    // 在第一个位置上添加新的内容
        allList.add("MLDN") ;    // 向Collection中加入内容
        allList.add("www.mldn.cn") ;
        allList.remove(0) ; // 删除第一个元素,指定删除的位置
        System.out.println(allList) ;//移除第一位后的内容
        allList.remove("Hello") ;    // 此方法由Collection接口继承而来
        System.out.println(allList) ;
    }
};

结果:

[Hello, MLDN, www.mldn.cn]
[MLDN, www.mldn.cn]

集合可以增加,删除,实际最重要的是输出操作。

在List中提供了get()方法,此方法可以完成输出

 通常通过循环完成输出。但是循环通常是通过List提供的size()方法获取循环大小

例子如下:

package 类集;
import java.util.ArrayList ;
import java.util.List ;
public class test1{
    public static void main(String args[]){
        List<String> allList = null ;
        allList = new ArrayList<String>() ;    // 指定操作的泛型为String
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add(0,"World") ;    // 在第一个位置上添加新的内容
        allList.add("MLDN") ;    // 向Collection中加入内容
        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、

将集合转换成数组对象,ToArray。

  1,指定好数组类型,toArray(T[] a):括号里面是一个数组类型对象

例子

List<String> allList = new ArrayList<String>() ; 
allList.add("Hello") ; 

String str[] = allList.toArray(new String[]{}) ; // 指定好类型

输出的时候,直接使用数组:

System.out.print(str[i] + "、") ;

  2,返回object对象类型toArray()

例子:

List<String> allList = new ArrayList<String>() ; 
allList.add("Hello") ; 

Object obj [] = allList.toArray() ; // 返回Object类型

但是,输出的时候需要进行向下转型。

String temp = (String)obj[i] ; // 进行向下转型
System.out.print(temp + "、") ;

实例:

package 类集;
import java.util.ArrayList ;
import java.util.List ;
public class test1{
    public static void main(String args[]){
        List<String> allList = null ;
        allList = new ArrayList<String>() ;    // 指定操作的泛型为String
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add(0,"World") ;    // 在第一个位置上添加新的内容
        allList.add("MLDN") ;    // 向Collection中加入内容
        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() ;    // 返回Object类型
        for(int i=0;i<obj.length;i++){
            String temp = (String)obj[i] ;    // 进行向下转型
            System.out.print(temp + "、") ;
        }
    }
};

输出结果:

指定数组类型:World、Hello、MLDN、www.mldn.cn、
返回对象数组:World、Hello、MLDN、www.mldn.cn、

 

其他操作:

判断集合是否为空:bool IsEmpty();

截取部分集合:List <E> subList( int  fromindex,int endindex)

查找指定对象是否存在 :int indexOf(Object o),如果查找到,返回位置,否则返回-1.

查找是否存在:bool Contains(Object o)。如果存在返回true,否则false。

实例:

package 类集;
import java.util.ArrayList ;
import java.util.List ;
public class test1{
    public static void main(String args[]){
        List<String> allList = null ;
        allList = new ArrayList<String>() ;    // 指定操作的泛型为String
        System.out.println("集合操作前是否为空?" + allList.isEmpty()) ;
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add(0,"World") ;    // 在第一个位置上添加新的内容
        allList.add("MLDN") ;    // 向Collection中加入内容
        allList.add("www.mldn.cn") ;
        System.out.println(allList.contains("Hello")?"\"Hello\"字符串存在!" : "\"Hello\"字符串不存在!") ;
        List<String> allSub = allList.subList(2,3) ;    // 字符串截取
        System.out.println("集合截取:") ;
        for(int i=0;i<allSub.size();i++){
            System.out.print(allSub.get(i) + "、") ;
        }
        System.out.println("MLDN字符串的位置:" + allList.indexOf("MLDN")) ;
        System.out.println("集合操作后是否为空?" + allList.isEmpty()) ;
        }
};

输出结果:

集合操作前是否为空?true
"Hello"字符串存在!
集合截取:
MLDN、MLDN字符串的位置:2
集合操作后是否为空?false

 

Vector类继承List类,其操作差不多。

package 类集;
import java.util.List ;
import java.util.Vector;
public class test1{
    public static void main(String args[]){
        List<String> allList = null ;
        allList = new Vector<String>() ;    // 指定操作的泛型为String
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add("Hello") ;    // 此方法由Collection接口而来
        allList.add(0,"World") ;    // 在第一个位置上添加新的内容
        allList.add("MLDN") ;    // 向Collection中加入内容
        allList.add("www.mldn.cn") ;
        for(int i=0;i<allList.size();i++){
            System.out.print(allList.get(i) + "、") ;
        }
    }
};

返回结果:

World、Hello、Hello、MLDN、www.mldn.cn、

 

posted @ 2016-12-25 22:41  美好的明天  阅读(247)  评论(0编辑  收藏  举报