iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Modern Web

自己開發一個~?系列 第 4

JAVA程式碼~HashSet

  • 分享至 

  • xImage
  •  

解釋JAVA程式碼~
/images/emoticon/emoticon04.gif

真的是有夠硬的喔~
可以真的跑出甚麼的~
才不會看不下去
/images/emoticon/emoticon04.gif

程式碼

 package collection;

import java.util.HashSet;

public class Set01 {

	public static void main(String[] args) {
		//java本身定義的數字,字串型態-->已內訂比較模式(值)
				HashSet<String> hs = new HashSet<>();
				System.out.println(hs.add("JAVA"));
				hs.add("C++");
				hs.add(null);
				hs.add("100");
				hs.add("Android");
				System.out.println(hs);
				System.out.println(hs.remove("100"));
				System.out.println(hs);
				hs.add("Android");
				hs.add("JAVA");
				System.out.println(hs);
				System.out.println("--------------");
				
				HashSet<Integer> hs2 = new HashSet<>();
				hs2.add(100);
				hs2.add(56);
				hs2.add(70);
				hs2.add(100);
				hs2.add(70);
				hs2.add(60);
				System.out.println(hs2);
				System.out.println("--------------");
				
				HashSet<Pen> hs3 = new HashSet<>();
				hs3.add(new Pen());
				hs3.add(new Pen());
				hs3.add(new Pen());
				hs3.add(new Pen());
				System.out.println(hs3);
				
			}
		}
		//--------------------------
		class Pen{
			@Override
			public String toString() {
				return "Pen Object";
			}
			//不要同時修改hashCode() / equals(Object obj)
			@Override
			public int hashCode() {
				return 10;//不取得記憶體位址,而直接回傳10
			}
			@Override
			public boolean equals(Object obj) {
				return true;//不比對記憶體,而直接回傳true-->代表二者相同
			}
		}


顯示
https://ithelp.ithome.com.tw/upload/images/20231018/20119035xJuA9RL1Hc.png


解釋程式碼
這段Java程式碼主要示範了如何使用 HashSet 這個集合類別,以及一些相關的概念。以下是程式碼的解釋:

  1. 首先,建立了一個 HashSet 物件 hs,用來存放字串(String)型態的元素。

  2. 使用 add 方法將幾個元素加入到 hs 中,這些元素包括 "JAVA"、"C++"、null、"100" 和 "Android"。

  3. 使用 System.out.println(hs) 輸出 hs 的內容,HashSet 不保證元素的順序,所以輸出的順序可能不同。

  4. 使用 remove 方法移除一個元素 "100",並再次輸出 hs

  5. 接著再次加入 "Android" 和 "JAVA" 兩個元素到 hs,輸出最終的 hs

  6. 建立了另一個 HashSet 物件 hs2,這次用來存放整數(Integer)型態的元素,並加入了幾個整數。

  7. 輸出 hs2 的內容。

  8. 最後,建立了一個 HashSet 物件 hs3,用來存放自定義的 Pen 物件。這部分示範了自定義類別如何在 HashSet 中使用。

  9. Pen 類別有覆寫(override)了 toStringhashCodeequals 方法。這些方法的覆寫使得 HashSet 可以正確處理 Pen 物件的比較和哈希碼計算。

總結來說,這段程式碼示範了如何使用 HashSet 存儲不同型態的元素,以及如何自定義類別以適當方式使用 HashSet 集合。HashSet 用來存儲不重複的元素,並且不保證元素的順序。

/images/emoticon/emoticon08.gif

/images/emoticon/emoticon08.gif

謝謝收看/images/emoticon/emoticon41.gif


上一篇
又是解釋程式碼
下一篇
介紹程式碼到一半
系列文
自己開發一個~?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言