import java.util.*;
import java.util.Map.Entry;
public int FirstNotRepeatingChar(String str) {
        if(str==null||str.equals("")||str.length()==1)
            return -1;
        Map<Character,Integer> map = new LinkedHashMap<Character, Integer>();
        for(int i=0;i<str.length();i++){
            char c = str.charAt(i);//key
            if(!map.containsKey(c)){//如果不存在key
                map.put(c,i);
            }else{//修改值,索引变为-1的表示已经出现过一次了
                map.put(c,-1);
            }
        }
        //利用LinkedHashMap的特性按插入的顺序从头开始找索引不是负数的值,并返回
        for(Entry<Character,Integer> entry:map.entrySet()){
			if(entry.getValue()>=0)
                return entry.getValue();
		}
        //没有找到说明都重复,返回-1
        return -1;
    }