【发布时间】:2014-04-13 06:41:01
【问题描述】:
TreeMap<String,ArrayList<String>> statesToPresidents = new TreeMap<String,ArrayList<String>>();
TreeMap<String,String> reversedMap = new TreeMap<String,String>();
TreeSet<String> presidentsWithoutStates = new TreeSet<String>();
TreeSet<String>statesWithoutPresidents = new TreeSet<String>(); while (infile2.ready())
{
String president = infile2.readLine();
if (reversedMap.containsKey(president)==false)
presidentsWithoutStates.add(president);
}
infile2.close();
System.out.println( "\nThese presidents were born before the states were formed:\n"); // DO NOT REMOVE OR MODIFY
// YOUR CODE HERE TO PRINT THE NAME(S) Of ANY PRESIDENT(s)
// WHO WERE BORN BEFORE THE STATES WERE FORMED = 10%
Iterator<String> iterator = presidentsWithoutStates.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
我想知道如果我使用 ArrayList 而不是 TreeSet,我的程序是否会运行得更快。如果它不是 reversedMap 中的键并且当我打印出来时我需要它的排序顺序,我将字符串总裁添加到总裁WithoutStates TreeSet。我应该使用 TreeSet 并随时排序,还是应该只使用 arraylist 并在最后进行排序。我看到了一个类似的问题,但那个人并没有像我一样不断添加元素。
编辑:没有重复
【问题讨论】:
-
在我看来,您似乎在利用 TreeSet 的排序和键查找的优势来证明增加的开销是合理的。如果你只使用排序,你还不如只使用 ArrayList,如果你只使用键查找,你应该使用 HashMap。只是我的看法,可能还有其他人不同意。
标签: java optimization data-structures arraylist treeset