キーで逆ソートした TreeMap があり、値を出力するためにループスルーしようとしていますが、NavigableSet はentrySet()
メソッドとして持っていません。これは私が見つけているすべての例です。
私のJavaは非常に初心者なので、例にあるコードを変更するには、現在の知識が限られています。
<%@page
import="java.util.Iterator,
java.util.Map,
java.util.TreeMap,
java.util.NavigableSet,
com.day.cq.wcm.api.PageFilter"
%>
TreeMap<String, String> news = new TreeMap<String, String>();
String listroot = properties.get("listRoot", currentPage.getPath());
Page rootPage = pageManager.getPage(listroot);
if (rootPage != null) {
Iterator<Page> children = rootPage.listChildren(new PageFilter(request));
while (children.hasNext()) {
Page child = children.next();
String title = child.getTitle(); //value
String url = child.getPath(); //value
String dcreated = child.getProperties().get("jcr:created",""); //key
news.put( dcreated, title + "::" + url );
}
NavigableSet nset = news.descendingKeySet(); //Reverse order the entries
for( String value : nset.values() ) { //I know this is incorrect.
out.println( value + "<br>");
}
}
%>
これを行うにはもっと効率的な方法があると確信していますが、今のところこれが思いつく方法です。