如何解决为什么在使用containsKey方法后我的列表中出现重复项
我正在使用hashmap来验证映射中是否存在密钥主体,并将密钥添加到列表中,我正在使用containsKey来防止重复,但是将重复项添加到我的列表中
{
"name": "xxxx","private": true,"version": "1.3.11","engines": {
"node": "6.5.0"
},"description": "a Sails application","keywords": [],"dependencies": {
"bull": "^2.2.6","cookie-parser": "^1.4.3","db-migrate": "^0.11.11","db-migrate-pg": "^0.1.10","deepmerge": "^1.5.0","elasticsearch": "^13.0.1","express": "^4.17.1","fbgraph": "^1.4.4","firebase-admin": "^5.13.1","galileo-agent": "^2.0.2","googlemaps": "^1.4.0","ioredis": "^2.5.0","jose": "^1.28.0","knuth-shuffle": "^1.0.1","mashape-analytics": "0.0.1-security","mixpanel": "^0.4.0","moment": "^2.26.0","moment-timezone": "^0.5.9","natives": "^1.1.6","node-opensignal-api": "0.0.3","node-uuid": "^1.4.7","pg-native": "^2.0.1","raven": "^1.2.1","rc": "~0.5.0","request": "^2.60.0","request-promise": "^4.2.1","sails": "~0.11.0","sails-disk": "~0.10.0","sails-postgresql": "^0.12.2","squel": "^4.3.3","winston": "^2.3.0","winston-loggly": "^1.3.1","winston-loggly-bulk": "^1.3.4"
},"scripts": {
"debug": "node debug app.js","start": "node app.js"
},"main": "app.js",}
}
解决方法
我看到您在;
条件后给了分号if()
只需删除并尝试
private static void makeList(int n,ArrayList<Integer> minimum,HashMap<Integer,Integer> ugly) {
for(int i=1; minimum.size() < n; ++i) {
if(!ugly.containsKey(2*i)) { //<-edited part,removed semicolon
minimum.add(2*i);
ugly.put(2*i,2*i );
}
int m3=3*i;
if(!ugly.containsKey(3*i)){
minimum.add(3*i);
ugly.put(3*i,3*i);
}
int m5=5*i;
if(!ugly.containsKey(m5)){
minimum.add(m5);
ugly.put(m5,m5);
}
}
,
要简单,并清除代码。
private static void makeList(int n,List<Integer> minimum,Map<Integer,Integer> ugly) {
for (int i = 1; minimum.size() < n; i++)
for (int j : Arrays.asList(2,3,5))
if(ugly.put(i * j,i * j) == null)
minimum.add(i * j);
}
PS 。为什么不将Set<Integer>
与Map<Integer,Integer>
一起使用key == value
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。