Collection、Iterator、泛型初步
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、泛型初步的更多相关文章
- 09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet
09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHas ...
- 【Collection、泛型】
[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个 ...
- 01 语言基础+高级:1-6 集合_day02【Collection、泛型】
day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合 ...
- 02【Collection、泛型】
主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合 ...
- (Collection, List, 泛型)JAVA集合框架一
Java集合框架部分细节总结一 Collection List 有序,有下标,元素可重复 Set 无序,无下标,元素不可重复 以上为Collection接口 以ArrayList为实现类实现遍历:增强 ...
- Java(232-245)【Collection、泛型】
class GenericInterfaceImpl2<I> implements GenericInterface<I> { @Override public void me ...
- scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...
- Collection、泛型
Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型
- Iterator泛型指针
Iterator泛型指针 每个标准容器都提供一个名为: begin()的操作函数,返回一个iterator指向第一个元素: end()操作函数,返回一个iterator指向最后一个元素的下一位置: 定 ...
随机推荐
- CSIC_716_20191129【面向对象高级----反射、类的内置方法(魔法方法)、单例模式】
反射 反射是通过'字符串'对 对象的属性进行操作,反射有四个内置的方法. hasattr 通过字符串 判断对象的属性或者方法是否存在 getattr 通过字符串 获取对象的属性或者方法 ...
- [转]WPF的依赖属性是怎么节约内存的
WPF升级了CLR的属性系统,加入了依赖属性和附加属性.依赖属性的使用有很多好处,其中有两点是我认为最为亮眼的: 1)节省内存的开销; 2)属性值可以通过Binding依赖于其它对象上,这就使得我的数 ...
- IIS查找报错信息
1.打开IIS,选择日志 2.选择 日志文件和ETW事件 ---->应用 3.在发布网站的根目录下找一个logs文件(如果没有则创建) 4.浏览网站,如果报错,logs文件夹下面就会生成一个 ...
- MapReduce分区数据倾斜
什么是数据倾斜? 数据不可避免的出现离群值,并导致数据倾斜,数据倾斜会显著的拖慢MR的执行速度 常见数据倾斜有以下几类 1.数据频率倾斜 某一个区域的数据量要远远大于其他区域 2.数据大小倾斜 ...
- 【设计】schema
Schema:表的模式: 设计数据的表,索引,以及表和表的关系 在数据建模的基础上将关系模型转为数据库表 满足业务模型需要基础上根据数据库和应用特点优化表结构 关系模型图: Schema关 ...
- 后缀自动机求多串LCS——spojlcs2
/* 每个状态存最长匹配长度,然后多个串匹配过程中取最小的最长匹配长度 和LCS1不同的地方:LCS只要维护住当前匹配长度和最长匹配长度即可,但是多串匹配需要维护的是每个状态结点(即后缀树上)的信息 ...
- 动态隐藏显示窗口的标题栏(同时保持窗口的sizeable性能
今天考虑作界面的时候,想去掉窗体的标题栏,但设置 Form.BorderStyle := bsNone; 会导致窗体不可再 Sizeable (通过鼠标操作改变窗体大小),仔细翻看了相关Help也没找 ...
- DELPHI中如何让FORM窗体透明,只显示控件?
DELPHI中如何让FORM窗体透明,只显示控件?分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:7largewanglargewanglargewang等级:Blank ...
- 解决php-fpm占用cpu memory过高,开启php-fpm request_slowlog_timeout
项目刚从win下挪到linux下,发现cpu过高,内存也占用较多,以下是我解决问题的过程: 首先更改php-fpm配置 vim /usr/local/php/etc/php-fpm.conf 找到 r ...
- Python-爬虫之股转系统下载文件自动翻页
上次代码只能抓取一个网页上的链接,本次可以自主设定抓取的页面个数. 代码如下: from selenium import webdriver import os, time class Downloa ...