zoukankan      html  css  js  c++  java
  • 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("
    由后向前输出:") ;
            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("
    返回对象数组:") ;
            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、
  • 相关阅读:
    Educational Codeforces Round 20 D. Magazine Ad
    Educational Codeforces Round 20 C. Maximal GCD
    紫书第三章训练2 暴力集
    Educational Codeforces Round 20 B. Distances to Zero
    Educational Codeforces Round 20 A. Maximal Binary Matrix
    紫书第三章训练1 D
    紫书第一章训练1 D -Message Decoding
    HAZU校赛 Problem K: Deadline
    Mutual Training for Wannafly Union #8 D
    紫书第三章训练1 E
  • 原文地址:https://www.cnblogs.com/alsf/p/6220821.html
Copyright © 2011-2022 走看看