如题,普通的hashmap会根据key的大小进行重新拍序,这种情况下可以使用LinkedHashMap
两种方法,hashmap 或者是 两个list
final int num = 2;
HashMap<Character, Integer> map = new LinkedHashMap<Character, Integer>();
for(int i = 0; i < str.length();i++) {
char ch = str.charAt(i);
if(map.containsKey(ch)) {
map.put(ch, 2);
}else {
map.put(ch, 1);
}
}
char ch =' ';
int res = 0;
for (java.util.Map.Entry<Character, Integer> entry : map.entrySet()) {
Integer value = entry.getValue();
if(value != 2) {
ch = entry.getKey();
break;
}
}
for(int i = 0; i < str.length();i++) {
if(str.charAt(i) == ch)
{
res = i;
break;
}
}
return res;或者
ArrayList<Character> list_new = new ArrayList<Character>();
ArrayList<Character> list = new ArrayList<Character>();
for(int i = 0; i < str.length();i++){
if(list_new.contains(str.charAt(i)))
list.add(str.charAt(i));
else
list_new.add(str.charAt(i));
}
char cha=' ';
for(int i = 0,j = 0; i < list_new.size();i++){
char ch = list_new.get(i);
if(list.contains(ch)){
continue;
}else{
cha = ch;
break;
}
}
int res = -1;
for(int i = 0; i < str.length();i++) {
if(str.charAt(i)== cha) {
res = i;
break;
}
}
return res;
京公网安备 11010502036488号