看板 java 關於我們 聯絡資訊
有個自訂類別 public class Node { public Node(String name,String type){ this.name = name; this.type = type;} public int hashCode() { int result; result = this.name.hashCode(); return result;} public boolean equals(Object other){ if(((Node)other).name.equals(this.name)) return true; return false;} } public static void main(String[] args) { Node n = new Node("Lin","Human"); Node k = new Node("Lin","alien"); public static Set<Node> set = new LinkedHashSet<Node>(); set.add(n); set.add(k); //會視為相同物件,不加入set 想請問有辦法在判斷是相同物件時執行我想自訂的方法嗎? 比如說:當set.add(k)時發現set裡面有相同物件時執行System.out.print("已有相同物"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.168.39
TonyQ:你可以繼承LinkHashSet 包一層add . 或者採用委讓機制. 09/15 02:04
TonyQ:簡單來說,「有辦法」. ~_~ 09/15 02:06
TonyQ:話說回來 拿set.contains(obj) 這個方法來測比較實際=.=a 09/15 02:08
rukawa0328:其實你可以用boolean Set.add(Object o) 09/15 13:30
rukawa0328:他會回傳一個boolean 無法add(false)就是重覆了, 洽API 09/15 13:31