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

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章