1、步驟:
1)ArrayList的contains方法的簡介:
public boolean contains(Object o)
如果此列表包含指定的元素o,則返回true
。
2)重寫equals方法以便使用自己的方式去對比集合中的兩個對象是否相同:
// 重寫equals方法 public boolean equals(Object obj) { if (obj instanceof myChar) { return ((myChar)obj).getValue() == this.value; } return false; }
3)完整的實現代碼:
import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); char[] arr = s.nextLine().toCharArray(); ArrayList<myChar> myList = new ArrayList<>(); for (char c : arr) { myChar mc = new myChar(c); if (!myList.contains(mc)) myList.add(mc); } for (myChar m : myList) { System.out.print(m); } } } class myChar { private char value; myChar() {} myChar(char value) { this.value = value; } public char getValue() { return this.value; } // 重寫equals方法 public boolean equals(Object obj) { if (obj instanceof myChar) { return ((myChar)obj).getValue() == this.value; } return false; } // 重寫toString()方法以便可以直接輸出該對象 public String toString() { return String.valueOf(this.value); } }