【发布时间】:2018-12-10 11:38:28
【问题描述】:
for (int i = 0; i < projectList.size(); i++) {
String projectName = projectList.get(i);
String url = "https://api.github.com/repos/apache/" + projectName + "/commits";
try {
data = Jsoup.connect(url).timeout(30000).ignoreContentType(true).execute().body();
System.out.println(url);
// System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
objArray = new JSONArray(data);
for (int i1 = 0; i1 < objArray.length(); i1++) {
obj = objArray.getJSONObject(i1);
if (!obj.isNull("committer")) {
obj1 = obj.getJSONObject("committer");
commiterName = obj1.getString("login");
}
else {
continue;
}
if (!UserCommitCount.containsKey(commiterName)) {
UserCommitCount.put(commiterName, 1);
} else {
UserCommitCount.put(commiterName, UserCommitCount.get(commiterName) + 1);
}
}
UserCommitCount = sortByComparator(UserCommitCount, DESC);
UserCommitCount = resizeUserCommitCount(UserCommitCount);
printHashMap(UserCommitCount);
System.out.println(projectName + "!!!!");
printHashMap(UserCommitCount);
RepoNameCommitterMap.put(projectName, UserCommitCount);
UserCommitCount.clear();
System.out.println(projectName+ "AFTER");
printHashMap(UserCommitCount);
printNestedHashMap(RepoNameCommitterMap);
}
所以我试图将数据存储在 Hashmap 中,输出是这样的
https://api.github.com/repos/apache/zookeeper/commits
hanm - 4
anmolnar - 23
lvfangmin - 3
zookeeper!!!!
hanm - 4
anmolnar - 23
lvfangmin - 3
zookeeper - {}
https://api.github.com/repos/apache/camel/commits
davsclaus - 9
oscerd - 20
PascalSchumacher - 1
camel!!!!
davsclaus - 9
oscerd - 20
PascalSchumacher - 1
camelAFTER
zookeeper - {davsclaus=9, oscerd=20, PascalSchumacher=1}
camel - {}
https://api.github.com/repos/apache/httpd/commits
minfrin - 1
elukey - 2
ylavic - 6
jfclere - 3
notroj - 4
jimjag - 1
httpd!!!!
minfrin - 1
elukey - 2
ylavic - 6
jfclere - 3
notroj - 4
jimjag - 1
httpdAFTER
zookeeper - {davsclaus=9, oscerd=20, PascalSchumacher=1}
camel - {minfrin=1, elukey=2, ylavic=6, jfclere=3, notroj=4, jimjag=1}
httpd - {}
然后继续。您会看到在第一个 put 命令中放置了键,但 hashMap 没有放置,它会移动下一次迭代。我不明白为什么会这样。谁能帮我修一下?
在第一次迭代 ReponameCommiter.put 中,放置 repo 的名称但不放置 userCommitCount Map。
【问题讨论】:
-
"你看到在第一个 put 命令中放了键,但是 hashMap 没有放,它改变了下一次迭代" 你能重新调整这个吗?我不知道你在说什么
-
到底是什么问题?
-
所以它应该喜欢这个 zookeeper - { hanm = 4,anmolnar = 23, lvangfin = 3 } 而不是 zookeeper - { } 这 3 个(hanm、anmolar 和 lvangfin)以某种方式丢弃。