1.泛型:是jdk5.0后的版本
作用:为了规范集合保存数据类型,可以使用泛型进行约束
2.ArrayList是有序可重复的,有的集合是没有下标的,就不可以使用get()方法获取数据
3.Iterator接口
接口不能实例化,但是接口对象可以指向他的实现类对象
4,斗地主案例
import java.util.ArrayList;
import java.util.Collections;
/**
* 斗地主案例
*/
public class CardDemo {
public static void main(String[] args) {
//准备牌
//集合中记录一副牌
ArrayList<String> poker = new ArrayList<>();
//定义花色
ArrayList<String> colors = new ArrayList<>();
colors.add("♣");
colors.add("◇");
colors.add("♠");
colors.add("♥");
//定义一个集合存放数字
ArrayList<String> numbers = new ArrayList<>();
//使用循环赋值
for (int i = 2; i <= 10; i++) {
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
numbers.add("A");
//嵌套迭代的方式完成每一张牌的组装
//利用foreach
for(String thisColor:colors){ // 外层循环遍历花色
for(String thisNumber:numbers){ // 内层循环遍历数字
//通过花色与数字对应每一张牌
poker.add(thisColor+thisNumber);//存入52张牌
}
}
//补充大小王
poker.add("大王");
poker.add("小王");
//测试
//System.out.println(poker);
//洗牌-直接调用方法
//Collections是一个集合工具类,提供了很多的集合中处理的静态方法
Collections.shuffle(poker);//打乱集合
//发牌 - 将每个人及底牌设置为一个集合,最后的3张放入底牌中,剩余牌通过对3进行取余依次发牌
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
//使用普通for,通过下标处理
//除了最后3张,其他的都发给玩家
for (int i = 0; i < poker.size()-3; i++) {
//获取当前牌
String thisCard = poker.get(i);
//对3取余
if(i%3==0){
player1.add(thisCard);
}else if(i%3==1){
player2.add(thisCard);
}else{
player3.add(thisCard);
}
}
//最后三张
for (int i = poker.size()-3; i < poker.size(); i++) {
String thisCard = poker.get(i);
dipai.add(thisCard);
}
//看牌
System.out.println(player1);
System.out.println(player2);
System.out.println(player3);
System.out.println(dipai);
}
}
5.
6.