Hashset vs Treeset

后端 未结 14 1914
再見小時候
再見小時候 2020-11-22 13:38

I\'ve always loved trees, that nice O(n*log(n)) and the tidiness of them. However, every software engineer I\'ve ever known has asked me pointedly why I would u

14条回答
  •  臣服心动
    2020-11-22 14:00

    import java.util.HashSet;
    import java.util.Set;
    import java.util.TreeSet;
    
    public class HashTreeSetCompare {
    
        //It is generally faster to add elements to the HashSet and then
        //convert the collection to a TreeSet for a duplicate-free sorted
        //Traversal.
    
        //really? 
        O(Hash + tree set) > O(tree set) ??
        Really???? Why?
    
    
    
        public static void main(String args[]) {
    
            int size = 80000;
            useHashThenTreeSet(size);
            useTreeSetOnly(size);
    
        }
    
        private static void useTreeSetOnly(int size) {
    
            System.out.println("useTreeSetOnly: ");
            long start = System.currentTimeMillis();
            Set sortedSet = new TreeSet();
    
            for (int i = 0; i < size; i++) {
                sortedSet.add(i + "");
            }
    
            //System.out.println(sortedSet);
            long end = System.currentTimeMillis();
    
            System.out.println("useTreeSetOnly: " + (end - start));
        }
    
        private static void useHashThenTreeSet(int size) {
    
            System.out.println("useHashThenTreeSet: ");
            long start = System.currentTimeMillis();
            Set set = new HashSet();
    
            for (int i = 0; i < size; i++) {
                set.add(i + "");
            }
    
            Set sortedSet = new TreeSet(set);
            //System.out.println(sortedSet);
            long end = System.currentTimeMillis();
    
            System.out.println("useHashThenTreeSet: " + (end - start));
        }
    }
    

提交回复
热议问题