1.1泛型概续:我们知道集合可以存储任何对象的,他们会转换成Object类型,在取出每一个对象时必须采用强制转换,所以泛型将编译后的失败提前到编译器,避免了强转的麻烦。
定义格式:
修饰符 class 类名<代表泛型的变量> { }//类名
修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }//方法
修饰符 interface接口名<代表泛型的变量> { }//接口
1.2泛型的通配符:
泛型的上限与下限:
格式: 类型名称 <? extends 类 > 对象名称 意义: 只能接收该类型及其子类
格式: 类型名称 <? super 类 > 对象名称 意义: 只能接收该类型及其父类型
2.1Collection集合理解:
集合是个容器,可以存储多个数据,集合存储的是引用数据类型,如果想存储基本数据类型需要存储对应的包装类型。
3.1Iterator迭代器:
想要遍历Collection集合,需要Iterator迭代器完成迭代操作,public Iterator iterator() : 获取集合对应的迭代器,用来遍历集合中的元素的。
迭代的概念:在取元素之前要判断,如果有就取出来,在判断,直到全部取出。
Iterator接口常用方法:
public E next() :返回迭代的下一个元素。 public boolean hasNext() :如果仍有元素可以迭代,则返回 true
4.1对斗地主案例的分析理解:
按照斗地主的规则,完成洗牌发牌动作:
1.准备牌:
定义一个ArrayList集合来存储54张牌,泛型使用String
定义二个花色一个存储数组,一个存储花色
把大小王添加到集合中
且套循环遍历二个数组,组装52张牌
将组装的牌放到集合中
2.洗牌:
使用Collection的shuffle方法
3.发牌:
定义4个集合,储存玩家的牌和底牌
然后根据索引判断
4.看牌:
输出