class Solution {
public int singleNumber(int[] nums) {
int ans=-1;
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int q:nums) {
if(map.keySet().contains(q)) {
map.put(q,2);
}else {
map.put(q,1);
}
}
for(int q:map.keySet()) {
if(map.get(q)==1) {
ans=q;
break;
}
}
return ans;
}
}
Map类附录
package 类;
/**
Map< xx , xx > map=new LinkedHashMap< xx , xx >();
Map< xx , xx > map=new HashMap< xx , xx >();
Map< xx , xx > map=new TreeMap< xx , xx >();
Map类前一个参数是 key ,后一个参数是 value
map.keySet(); //获取map里边第一个参数的集合
map.values(); //获取map里边第二个参数的集合
注意了,这两个方法获取的都是集合!并且都没有下标,如果想遍历的话可以用加强for语句遍历
若想根据key的值修改value的值,则要重新放入<旧key,新value>,新的value会自动覆盖原来的value
若想根据key的值返回value的值,则要使用map.get( xx )方法,方法里的参数是key的内容
*/
import java.util.HashMap;
import java.util.Map;
/*
https://blog.csdn.net/taraex/article/details/90243965
https://blog.csdn.net/writebook2016/article/details/79110075?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param
https://blog.csdn.net/whing123/article/details/77833623?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
*/
public class Map类 {
public static void main(String[] args) {
//key value
Map<Integer,String> ss=new HashMap<Integer,String>();
int a[]=new int[] {1,2,3,4,5};
String s[]=new String[] {"one","two","three","four","five"};
for(int i=0;i<a.length;i++) {
ss.put(a[i], s[i]);
}
System.out.println(ss.size());
System.out.println(ss.get(5)); //get方法中的参数是key,此方法根据key的值返回value的值
System.out.println();
for(String q:ss.values()) {
System.out.println(q);
}
System.out.println();
for(int q:ss.keySet()) {
System.out.println(q);
}
}
}