題目描述
S今天看完新聞聯播后,閑得無聊,翻出一些撲克,但是撲克很雜亂,他決定找出其中一副撲克(除去大小鬼牌)用來在小姐姐面前變魔術。他現在想知道他是否能找出一副撲克。
輸入描述
一行一個n表示n張牌
n行,每行一個字符串和一個數字表示花色和大小(紅心,方片,梅花,黑桃)
(A用1,JQK用,11,12,13)
輸出描述
一行一個字符串“Yes"或”No"
代碼
利用Set集合可以很簡單的處理這個問題
package homework3;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class JwhDay16 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Set<String> st=new HashSet<>();
String s;
System.out.println("輸入牌的數量");
int n=in.nextInt();
for (int i = 0; i < n; i++) {
s=in.next();
st.add(s);
}
if(st.size()==n)
System.out.println("Yes");
else
System.out.println("No");
}
}
Set集合巧用
package practise;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class day1 {
public static void main(String[] args) {
Set<String> set=new HashSet<String>();
set.add("abc");
set.add("cde");
set.add("efg");
set.add("fgh");
set.add("abc"); //重復的abc,set會自動將其去掉
System.out.println("size="+ set.size() );
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("aaa");
list.add("fff");
set.addAll(list); //將list中的值加入set,並去掉重復的abc
System.out.println("size="+ set.size() );
for( Iterator<String> it = set.iterator(); it.hasNext(); ) //打印集合
{
System.out.println("value="+it.next()); //it.next().toString();
}
}
}
iterator的兩種遍歷方式
迭代器應用:
List list = new ArrayList<>();
list.add(1);
list.add(2);
//方法一:
for (Iterator i =list.iterator(); i.hasNext();) {
int str = (int) i.next();
System.out.print(str);
}
//方法二:
Iterator it = list.iterator();
while (it.hasNext()) {
int str = (int) it.next();
System.out.print(str);
}