集合和泛型

Collection集合

1、两种容器
A.数组(存放任意类型,长度固定)
B.集合(存放对象类型,长度可变)
2、体系结构

1. 单列集合 Collection

List (ArrayList、LinkedList、Vector)

Set (HashSet、LinkedHashSet、TreeSet)

2、常用方法

A.增
public boolean add(E)

B.删
public void clear()
public boolean remove(E)

C.改
public Object[] toArray()
public T[] toArray()

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 pokerBox = new ArrayList<>();
B.花色 ArrayList colors = new ArrayList<>();
C.牌值 ArrayList 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 diPai = new ArrayList<>();

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值