Java中的Set集合自動去重


題目描述

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。