凡是涉及到去重统计都可以用位图实现。因为每一个不同的数据只需要用二进制的一位存储即可,大大减小了统计所使用的存储空间
import java.util.Scanner; import java.util.BitSet; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String line = scanner.next(); //总共有128个字符。字需要用128位 BitSet bitSet = new BitSet(128); for (char c : line.toCharArray()) { //判断字符c是否已出现 if (!bitSet.get(c)) { //未出现就设置为已出现 bitSet.set(c); } } //统计有多少字符已出现过 System.out.println(bitSet.cardinality()); } }