Java集合四部曲(一)-集合接口(Collection集合、Iterator迭代器)、泛型

区分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);

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_39332529/article/details/106348583