Java通过ArrayList的contains,Object o方法实现去重字符串中的字符

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