问:应该得到1但收到7!
com / example / BlogPost.java
包 com.example ;
导入java.io.Serializable ; 导入java.util.ArrayList ; 导入java.util.Date ; 导入java.util.List ; 公共类BlogPost实现Comparable < BlogPost >,可序列化{ private String mAuthor ; 私有字符串mTitle ; 私有字符串mBody ; 私有字符串mCategory ; 私人日期mCreationDate
;
公共BlogPost (字符串作者,字符串标题,字符串正文,字符串类别,日期creationDate ){ mAuthor = author ; mTitle =标题; mBody =身体; mCategory =类别;mCreationDate = creationDate ; } public int compareTo (BlogPost other ){如果
(等于(其他)) {
返回0 ; }返回mCreationDate 。的compareTo (其他。mCreationDate ); } public String [] getWords (){返回mBody 。分割(“ \\ s +” ); } public List <字符串> getExternalLinks (){列表<字符串> links = new ArrayList <
字符串>();
对于(串词:getWords ()){如果(字。startsWith (“HTTP” )){链接。加(字); } }返回的链接; } public String getAuthor (){ return mAuthor ; } public String getTitle (){ return mTitle ; }公共字符串
getBody () {
return mBody ; } public String getCategory (){ return mCategory ; } public Date getCreationDate (){返回mCreationDate ; } }
com / example / Blog.java
包 com.example ;
导入java.util.List ; 导入java.util.Set ; 导入java.util.TreeSet ; 导入java.util.Map ; 导入java.util.HashMap ; 公共类Blog {列表< BlogPost > mPosts ; public Map < String ,Integer > getCategoryCounts (){ Map < String ,Integer > categoryCounts = new
HashMap < String ,Integer >();
int计数= 0 ; 为(博客帖子博客:mPosts ){如果(博客。的getCategory ()==空){计数= 0 ; }否则算++;categoryCounts 。把(博客。的getCategory (),计数); }返回categoryCounts ; }
公共 博客(列表< BlogPost > 帖子) {
mPosts =帖子; } public List < BlogPost > getPosts (){ return mPosts ; } public Set < String > getAllAuthors (){ Set < String > authors = new TreeSet <>(); 对于(BlogPost post :mPosts ){
作者。添加(职位。getAuthor ());
}返回作者; } }
答:在getCategoryCounts(),里面的循环中,我们需要做一些事情让每个岗位的类别(IES)。我们可以使用类中的getCategory()方法获取BlogPost类别,然后从中获取计数。确保如果我们count等于null处理该情况,否则可能会引发可怕的InvocationTargetException 。:眨眼:
如果仍然遇到问题,请发回。