Java基础进阶Day02

Java基础进阶

课程大纲

1、Collection集合 -------------> 理解
2、迭代器 Iterator ------------> 重点
3、泛型 -----------------------> 理解
4、斗地主案例 ------------------> 理解

第一章 Collection集合

1、两种容器
A.数组(存放任意类型,长度固定)
B.集合(存放对象类型,长度可变)
2、体系结构
单列集合 Collection 
	List (ArrayList、LinkedList、Vector)
	Set (HashSet、LinkedHashSet、TreeSet)
3、常用方法
A.public boolean add(E)
    
B.public void clear()
	public boolean remove(E)
    
C.public Object[] toArray()
	public T[] toArray(<T>)
    
D.public int size()
	public boolean isEmpty()

第二章 迭代器 Iterator

1、获取迭代器对象
Iterator<E> iter = c.iterator(); //获取迭代器
2、使用迭代器方法
iter.hasNext(); //是否存在下一个元素
E  e = iter.next(); //获取下一个元素
3、模板案例(快捷键 itit 回车)
//创建对象
Collection<String> c = new ArrayList<String>();
//添加数据
c.add("Hello");
c.add("world");
c.add("good");
//获取迭代器
Iterator<String> iter = c.iterator();
//循环遍历迭代器 itit
while (iter.hasNext()) {
    String next =  iter.next();
    System.out.println(next);
}	
4、增强for循环的使用(快捷键 集合名称.for)
//创建对象
Collection<String> c = new ArrayList<String>();
//添加数据
c.add("Hello");
c.add("world");
c.add("good");
//增强for
for (String s : c) {
    System.out.println(s);
}
5、迭代器的注意事项
不能在遍历集合的过程当中进行修改的操作,否则会出现并发修改异常
并发修改异常: ConcurrentModificationException

第三章 泛型

1、泛型的好处
A.提前检查(运行时可能出现的类型转换异常,提前到编译时是否通过)
B.简洁代码(不需要手动向下转型,快捷键直接提示出来类型)
2、泛型应用场景
A.泛型类
	a.定义格式:
		修饰符 class 类名称<泛型>{ }   //定义未知不具体类型
	b.使用格式:(创建对象)
		类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型
		
B.泛型方法
	a.定义格式:
		修饰符 <泛型> 返回值  方法名称 (参数){ 方法体; return 返回值; }  //定义未知不具体类型
	b.使用格式:(调用方法)
		具体返回值类型  返回值 = 方法名称(具体参数);  //使用已知具体类型

C.泛型接口
	a.定义格式:
		修饰符 interface 接口名称<泛型>{ }
	b.使用格式:(实现类或者创建实现类对象时候)
		第一种:修饰符 class 类名称 implements 接口名称<具体类型>{ }   //使用已知具体类型
		第二种:类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型

D.泛型通配符
	a.含义: 
		不知道使用什么数据类型的时候,泛型可以使用 ? 
	b.格式:
		Collection<?>  可以传递各种泛型类型的对象 
		例如: 这些都可以传递 Collection<Object> Collection<String> Collection<Integer> 
	c.高级使用: (Number是Integer的父类)
		Collection<? extends Number> 只能接收 Number类型以及子类类型. (专业术语"泛型的上限")
		Collection<? super Number> 只能接收 Number类型以及父类类型. (专业术语"泛型的下限"

第四章 斗地主案例

1、买牌(造牌、存牌)
A.扑克  ArrayList<String> pokerBox = new ArrayList<>();
B.花色  ArrayList<String> colors = new ArrayList<>();
C.牌值  ArrayList<String> numbers = new ArrayList<>();
2、洗牌(打乱牌顺序)
集合工具类,随机置换 Collections.shuffle(pokerBox);
3、发牌(索引取模3)
A.三个玩家
	ArrayList<String> player01 = new ArrayList<>();
	ArrayList<String> player02 = new ArrayList<>();
	ArrayList<String> player03 = new ArrayList<>();

B.底牌三张
	ArrayList<String> diPai = new ArrayList<>();

你可能感兴趣的:(笔记第二天)