如何计算在 TreeMap 中分别插入和排序需要多长时间

How to time how long it takes to insert and sort separatley in a TreeMap

我想计算程序插入树的时间,以衡量TreeMap 插入的效率。我还想测量单独排序需要多长时间。我这样做是为了我正在写的报告,我正在比较 TreeMap、linkedList 和 ArrayList 的插入时间和排序时间。对于 linkedList 和 ArrayList,我将首先插入所有内容并进行测量,然后调用 list.sort(comparator) 并测量排序所需的时间。我不确定如何为 TreeMap 执行此操作。

final long startTime = System.currentTimeMillis();      
      Comparator<String> secondCharComparator = new Comparator<String>() {
                    @Override public int compare(String s1, String s2) {
                        return s1.substring(1, 2).compareTo(s2.substring(1, 2));
                    }           
                };

        SortedMap<String,String> map =
                new TreeMap<String,String>(secondCharComparator);
            map.put("a", "one");
            map.put("a", "two");
            map.put("cd", "three");
    final long endTime = System.currentTimeMillis();

long totalTime = endTime - startTime;

如果你的数据结构默认是"sorted";比起测量 "sorting" 所需的时间没有意义。

您唯一能做的就是:测量 INSERT + SORT 列表需要多长时间;然后测量将 INSERT 插入 TreeMap 需要多长时间。

旁注:您了解您可能想要使用更多数据吗?并且您的数据集应该具有不同的属性(例如,如果您的元素 inserting/sorting ...具有随机分布,部分排序,反向排序,...可能会产生巨大差异)