- 使用map记录次数
- 使用LinkedHashMap<Character,Integer>可以做到按序添加
- hashmap添加进去以后key的顺序会变乱
import java.util.*;
public class Solution {
//Insert one char from stringstream
//每次传入一个字符,用map去记录次数
//按顺序添加
LinkedHashMap<Character,Integer> ci=new LinkedHashMap<Character,Integer>();
//用list返回输入流到FirstAppearingOnce()里进行判断
// ArrayList<Character> list=new ArrayList<Character>();
int i=0;
public void Insert(char ch)
{
//如果不存在
if(ci.containsKey(ch)!=true)
{
ci.put(ch,1);
}
else
{
ci.put(ch,ci.get(ch)+1);
}
// list.add(ch);
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
int flag=0;
char ans=0;
//遍历map看看value值有没有1的
//有1就返回第一个,没有就返回#
Set set=ci.keySet();
for(Iterator iter=set.iterator();iter.hasNext();)
{
char key=(char)iter.next();
int value=ci.get(key);
if(value==1)
{
ans=key;
flag=1;
break;
}
}
if(flag==0)
{return '#';}
return ans;
}
}