题目描述
S今天看完新闻联播后,闲得无聊,翻出一些扑克,但是扑克很杂乱,他决定找出其中一副扑克(除去大小鬼牌)用来在小姐姐面前变魔术。他现在想知道他是否能找出一副扑克。
输入描述
一行一个n表示n张牌
n行,每行一个字符串和一个数字表示花色和大小(红心,方片,梅花,黑桃)
(A用1,JQK用,11,12,13)
输出描述
一行一个字符串“Yes"或”No"
代码
利用Set集合可以很简单的处理这个问题
packagehomework3;importjava.util.HashSet;importjava.util.Scanner;importjava.util.Set;importjava.util.TreeSet;publicclassJwhDay16{publicstaticvoidmain(String[]args){Scanner in=newScanner(System.in);Set<String>st=newHashSet<>();String s;System.out.println("输入牌的数量");intn=in.nextInt();for(inti=0;i<n;i++){s=in.next();st.add(s);}if(st.size()==n)System.out.println("Yes");elseSystem.out.println("No");}}Set集合巧用
packagepractise;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.Iterator;importjava.util.List;importjava.util.Set;publicclassday1{publicstaticvoidmain(String[]args){Set<String>set=newHashSet<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=newArrayList<String>();list.add("abc");list.add("aaa");list.add("fff");set.addAll(list);//将list中的值加入set,并去掉重复的abcSystem.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=newArrayList<>();list.add(1);list.add(2);//方法一:
for(Iterator i=list.iterator();i.hasNext();){intstr=(int)i.next();System.out.print(str);}//方法二:
Iterator it=list.iterator();while(it.hasNext()){intstr=(int)it.next();System.out.print(str);}