zoukankan      html  css  js  c++  java
  • Collection和迭代器Iterator

    数组VS集合:
    1.数组的长度固定,集合的长度可变
    2.数组中存储同一类元素,可以存储基本数据类型,
    集合存储的都是对象,对象的类型可以不一样。
    java.util.Collection接口
    所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法
    任意的单列集合都可以使用Collection接口中的方法


    共性的方法:

    public boolean add(E e): 把给定的对象添加到当前集合中 。
    public void clear() :清空集合中所有的元素。
    public boolean remove(E e): 把给定的对象在当前集合中删除。
    public boolean contains(E e): 判断当前集合中是否包含给定的对象。
    public boolean isEmpty(): 判断当前集合是否为空。
    public int size(): 返回集合中元素的个数。
    public Object[] toArray(): 把集合中的元素,存储到数组中。
    java.util.Iterator接口:迭代器(对集合进行遍历)
    有两个常用的方法
    boolean hasNext() 如果仍有元素可以迭代,则返回 true
    判断集合中还有没有下一个元素,有就返回true,没有就返回false
    E next() 返回迭代的下一个元素。
    取出集合中的下一个元素
    Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊
    Collection接口中有一个方法,iterator(),这个方法返回的就是迭代器的实现类对象
    Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。
    迭代器的使用步骤(重点):
    1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收( 多态)
    2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
    3.使用Iterator接口中的方法next取出集合中的下一个元素
     
    增强for循环:用来遍历集合和数组
    格式:
    for(集合/数组的数据类型 变量名:集合名/数组名){
    sout(变量名);
    }



    定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间

    格式:
    修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){
    方法体;
    }

    含有泛型的方法,在调用方法的时候确定泛型的数据类型
    传递什么类型的参数,泛型就是什么类型
    
    
    泛型的通配符:
    ?:代表任意的数据类型
    使用方式:
    不能创建对象使用
    只能作为方法的参数使用
    定义一个方法,能遍历所有类型的ArrayList集合
    这时候我们不知道ArrayList集合使用什么数据类型,可以泛型的通配符?来接收数据类型
    注意:
    泛型没有继承概念的


    泛型的上限限定: ? extends E  代表使用的泛型只能是E类型的子类/本身
    // 泛型的上限:此时的泛型?,必须是Number类型或者Number类型的子类
    public static void getElement1(Collection<? extends Number> coll){}
    // 泛型的下限:此时的泛型?,必须是Number类型或者Number类型的父类
    public static void getElement2(Collection<? super Number> coll){}

    泛型的下限限定: ? super E 代表使用的泛型只能是E类型的父类/本身
    
    
    Integer extends Number extends Object
    String extends Object
    
    
    集合的工具类Collections中的方法
    static void shuffle(List<?> list) 使用默认随机源对指定列表进行置换。
     
     
  • 相关阅读:
    开源博客平台WordPress十岁啦!
    (转载)C# Attribute 用法备忘
    hibernate入门
    Hibernate对象关系映射基础
    struts2UI标签
    struts2文件上传2(多文件)
    struts2验证(手工)
    通过修改注册表改变txt文件的默认打开方式
    struts2验证(XML)
    Struts国际化
  • 原文地址:https://www.cnblogs.com/wjy980402/p/13539852.html
Copyright © 2011-2022 走看看