java.util.Collection 集合层次的根接口
  java.util.List extends Collection
    ArrayList implements List
      常用方法
        boolean add(E e) //添加元素
        boolean remove(Object o) //删除元素
        void clear() //清空元素
        boolean contains(Object o) //判断是否包含某元素
        boolean isEmpty() //判断是否为空
        int size() //获取集合长度

Collection集合的迭代
Iterator<E> iterator() //获取集合专属的迭代器
    抽象方法,但是Collection集合的实现类一定会重写此方法
    方法返回的是一个接口,重写后的方法,返回的肯定是这个接口的实现类对象
Iterator接口
    1.抽象方法
      boolean hasNaxt() 判断有没有下一个元素
      E next() 获取元素,使用一次指针向下移动一次
    2.实现类
      通过Collection的iterator()方法可以获取Iterator的实现类
      Iterator it = c.iterator();

    并发修改异常
    java.util.ConcurrentModificationException
    当迭代器正在迭代集合时,集合对象改变了集合的长度就会报此异常(迭代器本身的方法对元素长度进行操作就不会,但不建议使用)

增强for循环;底层是一个迭代器
只能用来迭代数组和集合
    for(集合中存储的数据类型 变量名 : 要遍历的集合名){
      System.out.println(变量名);     //不用索引了,所以如果要用到索引进行操作的还是用以前的循环
    }

泛型:
  不指定泛型
  容易报类型转换异常(ClassCastException)
  加入泛型的好处
    1.可以将运行时异常提前到编译期
    2.避免了使用向下转型

  定义泛型类
    public class 类名<接收泛型的变量(自定义名)>
    创建对象时确定下来泛型的数据类型

  定义泛型的方法
    public static <E> void method(E e){

    }
    在调用方法确定数据类型

  定义泛型接口
    public interface MyInterface<E>{  
    }
    A:定义实现类的时候确定
    B:定义实现类的时候继续使用泛型,创建对象的时候确定数据类型

  数据类型 = 类名 + 泛型
    方法使用泛型:
    在没有确定数据类型的时候:
      public static <E> void method(E e){

      }
    在没有确定泛型的时候,确定了类名
      public static void method(ArrayList<?> list){

      }

  泛型通配符:
   ? extends 父类 //只能是父类及其子类
   ? super 子类 //只能是子类和其父类

Collection、Iterator、泛型初步的更多相关文章

  1. 09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet

    09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHas ...

  2. 【Collection、泛型】

    [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个 ...

  3. 01 语言基础+高级:1-6 集合_day02【Collection、泛型】

    day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合 ...

  4. 02【Collection、泛型】

    主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合 ...

  5. (Collection, List, 泛型)JAVA集合框架一

    Java集合框架部分细节总结一 Collection List 有序,有下标,元素可重复 Set 无序,无下标,元素不可重复 以上为Collection接口 以ArrayList为实现类实现遍历:增强 ...

  6. Java(232-245)【Collection、泛型】

    class GenericInterfaceImpl2<I> implements GenericInterface<I> { @Override public void me ...

  7. scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步

    继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...

  8. Collection、泛型

    Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型

  9. Iterator泛型指针

    Iterator泛型指针 每个标准容器都提供一个名为: begin()的操作函数,返回一个iterator指向第一个元素: end()操作函数,返回一个iterator指向最后一个元素的下一位置: 定 ...

随机推荐

  1. js实现截取字符串后几位

    var strs ="wdsdabcdefages" strs.substring(obj.filename.lastIndexOf("a")+1,strs.l ...

  2. C++11中的技术剖析(std bind原理简单图解)

    此文为转载,好像原出处的原文已经无法打开了. 本文解释了bind 是如何工作的.为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现. bind 可 ...

  3. thinkphp 输入过滤

    永远不要相信客户端提交的数据,所以对于输入数据的过滤势在必行,我们建议: 开启令牌验证避免数据的重复提交: 使用自动验证和自动完成机制进行初步过滤: 使用系统提供的I函数获取用户输入数据: 对不同的应 ...

  4. Python 爬取12306火车票

    获取火车站 stations.py #import certifi #import urllib3 import re import requests from pprint import pprin ...

  5. 编译器报错: error LNK2001: unresolved external symbol "struct _ServiceDescriptorTable * KeServiceDescript

    转自VC错误:http://www.vcerror.com/?p=10 问题描述: 编译器报错: error LNK2001: unresolved external symbol "str ...

  6. 数据结构C++版-图

    一.概念及分类 二.图的存储结构 1.邻接矩阵 顶点: 弧: 边: 表达式语句: 2.邻接表 逆邻接表: 3.十字链表 4.邻接多重表 三.图的权值概念及遍历 权值: 图的遍历: 1.深度优先搜索 2 ...

  7. BOM DOM 简介

    BOM和DOM简介 BOM,Browser Object Model ,浏览器对象模型. BOM主要提供了访问和操作浏览器各组件的方式. 浏览器组件:   window(浏览器窗口)   locati ...

  8. 牛客练习赛43B Tachibana Kanade Loves Probability

    题目链接:https://ac.nowcoder.com/acm/contest/548/C 题目大意 略 分析 利用快速幂先移到 k1 位,然后开始一个一个取余数. 代码如下 #include &l ...

  9. Docker Api 实测

    好久没写博客,工作中想着未来部门需要对docker进行维护相对麻烦,而且,网络上也缺少一些合适的项目,于是准备筹划自己动手.先找到了Docker 的API文档,地址是:https://docs.doc ...

  10. 16-MySQL-Ubuntu-数据表的查询-分组与聚合(五)

    分组(group by)一般与聚合结合使用 (1)查询按性别分组 select gender from students group by gender; (2)查询按性别分组并统计每组的数量sele ...