区分Collection和Collections
Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
Collections工具类常用方法:
Collection 是各种集合接口的父接口,继承它的接口主要有Set和List,提供了关于集合的一些操作,如删除,插入,判断一个元素是否是其成员,遍历等。
一、Collection集合的框架:
Collection的常用方法:
使用:
先创建一个集合对象
Psvm
Collection<string> coll = new ArrayList<>;
二、Iterator迭代器接口
迭代:
先判断集合中有没有元素,如果有就把元素取出,继续判断,如果还有继续取出,直到全部取出为止!
两个常用方法来做个这个工作
1.boolean hasNext()
有元素返回true,没有元素返回Flase
2.E next()
取出集合下一个元素
三、泛型
定义:
是一个未知的数据类型,当我们不确定用什么类型,可以用泛型。
普通创建集合,默认为Object,什么数据都可以添加,但是不安全会引发异常,有了泛型定义好存入什么类型就只能存什么类型:
例如:只存入String类型的,先建立一个集合
ArrayList<String> list = new ArrayList<>;
利用add方法,只能存入String类型的,
缺点就是泛型是什么类型,就存储什么类型。
例子:斗地主
里面包含了集合,遍历,求模运算
代码:
package cn.itcast.DouDiZhu;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
/*步骤:
1.准备牌
2.洗牌
3.发牌
4.看牌*/
public class DouDiZhu {
public static void main(String[] args) {
//1.准备牌
ArrayList<String> poker = new ArrayList<>();
String[] colors = {"♦","♣","♥","♠"};
String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
//在把大小王添加到扑克中
poker.add("大王");
poker.add("小王");
//用colors和numbers组装成52张牌
for (String number:numbers){
for(String color:colors){
poker.add(color+number);
}
}
//2.洗牌
Collections.shuffle(poker);
//3.发牌
//定义四个玩家
ArrayList<String> Person1 = new ArrayList<>();
ArrayList<String> Person2 = new ArrayList<>();
ArrayList<String> Person3 = new ArrayList<>();
ArrayList<String> DiPai = new ArrayList<>();
//遍历扑克的长度,一共有多少张
for (int i = 0; i < poker.size() ; i++) {
//获取每一张牌
String p = poker.get(i);
//发牌
if (i>=51){
DiPai.add(p);
}else if(i%3==0){
Person1.add(p);
}else if(i%3==1){
Person2.add(p);
}else if(i%3==2){
Person3.add(p);
}
}
//4.看牌
System.out.println("刘德华:"+Person1);
System.out.println("周润发:"+Person2);
System.out.println("周星驰:"+Person3);
System.out.println("底牌:"+DiPai);
}
}