题目描述
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);
}