哈希表没讲什么有用的

有序表

treeMap.floorKey(n)

小于等于4的第一个数

treeMap.ceilingKey(n)

大于等于n的第一个数

时间复杂度是O(logN)

  1. // TreeMap 有序表:接口名
  2. // 红黑树、avl、sb树、跳表
  3. // O(logN)
  4. System.out.println("有序表测试开始");
  5. TreeMap<Integer, String> treeMap = new TreeMap<>();
  6. treeMap.put(3, "我是3");
  7. treeMap.put(4, "我是4");
  8. treeMap.put(8, "我是8");
  9. treeMap.put(5, "我是5");
  10. treeMap.put(7, "我是7");
  11. treeMap.put(1, "我是1");
  12. treeMap.put(2, "我是2");
  13. System.out.println(treeMap.containsKey(1));
  14. System.out.println(treeMap.containsKey(10));
  15. System.out.println(treeMap.get(4));
  16. System.out.println(treeMap.get(10));
  17. treeMap.put(4, "他是4");
  18. System.out.println(treeMap.get(4));
  19. // treeMap.remove(4);
  20. System.out.println(treeMap.get(4));
  21. System.out.println("新鲜:");
  22. System.out.println(treeMap.firstKey());
  23. System.out.println(treeMap.lastKey());
  24. // <= 4
  25. System.out.println(treeMap.floorKey(4));
  26. // >= 4
  27. System.out.println(treeMap.ceilingKey(4));
  28. // O(logN)