经过一楼提示,终于找到问题,是我自己事例验证时,没有发现结果不对,,,做蒙圈了

package com.companyExamination.pingduoduo; import java.util.*; /**  * Created by 凌 on 2019/3/10.  * 注释:字符去重后,找到首个字母最小值  */ public class Second { public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine(); if (str == null || str.trim().length() == 0){
            System.out.println(""); return;
        }
        str = str.toLowerCase();
        Map<Character,Integer> map = new HashMap<Character,Integer>(); for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (map.containsKey(ch)){
                map.put(ch, (Integer) map.get(ch)+1);
            }else {
                map.put(ch, 1);
            }
        } char firstMin='z'; for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (firstMin > ch){
                firstMin =ch;
            } int value = map.get(ch); if (value == 1){ break;
            }else{
                map.put(ch,--value);
            }
        } /*Iterator iterator=map.entrySet().iterator();  while(iterator.hasNext()){  Map.Entry entry=(Map.Entry )iterator.next();  char ch = (char)entry.getKey();  if (firstMin > ch){  firstMin =ch;  }  int value = (int)entry.getValue();  if (value == 1){  break;  }else{  map.put(ch,--value);  }  }*/  System.out.println(firstMin);
    }
}