public class removeDuplicate {
public static void removeDup(char[] array){
if(array == null) return;
if(array.length <2) return;
boolean[] hit = new boolean[255];
for(int i = 0; i< 255; i++){
hit[i] = false;//ascii number
}
hit[array[0]] = true;
int take = 1;
for(int i = 1;i<array.length; ++i){
System.out.println(hit[array[i]]);
System.out.println(!hit[array[i]]);
if(!hit[array[i]]){//when there is duplicated one means true
System.out.println("1");
array[take] = array[i]; //
// 这个是把后面的字母往前移动
// 比如 1 1 2 3这个
// tail开头指向的是1
// 也就是第二个1
// 但是前面已经出现过了1 所以第二个1 就被删掉了
// 等你接着往下走遇到2的时候 2 就会被放到第二个1的位置
++take;
hit[array[i]] = true;
}
}
array[take] = 0;//把NULL赋值给结尾 用来表示一个字符串结束了
}
public static void main(String[] args){
char[] array = new char[]{'a','b','a'};
removeDup(array);
System.out.println(array);
}
}