區分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);
}
}